2014-10-07 23 views
0
CANOEING = 3.5068 
HIKING = 6 
ROLLER_BLADING = 7.5068 
TAE_KWON_DO = 10.3014 
TAI_CHI = 3 

body_mass = float(input("Enter your body mass: ")) 
canoeing = 0 
hiking = 0 
roller_blading = 0 
tae_kwon_do = 0 
tai_chi = 0 
print("      Canoeing  Hiking   Rollerblading  Tae Kwon Do   Tai Chi    ") 
print("15") 
print("30") 
print("45") 
print("60") 
print("75") 
print("90")  
for x in range(15,95,15): 
    canoeing = CANOEING+body_mass+(x/60) + canoeing 
    hiking = HIKING+body_mass+(x/60) + hiking 
    roller_blading = ROLLER_BLADING+body_mass+(x/60) + roller_blading 
    tae_kwon_do = TAE_KWON_DO+body_mass+(x/60) + tae_kwon_do 
    tai_chi = TAI_CHI+body_mass+(x/60) + tai_chi 
    print("{0:>31.2f}".format(canoeing)) 
    print("{0:>36.2f}".format(hiking)) 
    print("{0:>51.2f}".format(roller_blading)) 
    print("{0:>61.2f}".format(tae_kwon_do)) 
    print("{0:>71.2f}".format(tai_chi)) 

如何將所有答案與列對齊,即徒步旅行和時間爲15分鐘。 我盡我所能,但所有的答案都搞砸了。如何將所有數字移動到與列對齊

+0

請張貼電流輸出和所需的輸出。 – kay 2014-10-07 23:32:09

回答

0

您只能打印從左到右,從上到下。所以你不能先打印所有的行標題,然後打印所有的數據;您必須打印每個行標題及其數據。

另外,您的每個print語句都會打印換行符。您需要添加end=''以防止發生此情況。

所以,這應該讓你開始:

print("      Canoeing  Hiking   Rollerblading  Tae Kwon Do   Tai Chi    ") 
for x in range(15,95,15): 
    print('{0:>2}'.format(x), end='') 
    canoeing = … 
    … 
    print("{0:>31.2f}".format(canoeing), end='') 
    … 
    print() 

這仍然是不會右看看,因爲你的格式,寬度多少,比你想放到合適的列寬得多。 (另外,由於您的標題寬度爲115個字符,在典型的80x25終端窗口中顯示效果不會很好......)但希望您可以自己修復該部分。

0

你也可以獲取所有值到一個打印/格式,如:

print("      Canoeing  Hiking   Rollerblading  Tae Kwon Do   Tai Chi") 
for x in range(15, 95, 15): 
    canoeing = ... 
    ... 
    print("{}{:>28.2f}{:>13.2f}{:>22.2f}{:>18.2f}{:>18.2f}" 
      .format(x, canoeing, hiking, roller_blading, tae_kwon_do, tai_chi)) 
相關問題