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 :(得分: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终端窗口中它看起来不会很好......)但希望您可以自己修复该部分。
答案 1 :(得分: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))