[英]Python printing floating point numbers from a list
嗨,我是編程新手,有一個小問題。
我有一些代碼試圖打印出結果。 當我打印時,它為我提供了一些數字,其中許多小數位,而有些數字中只有一個。 如果我嘗試將占位符從“ s”更改為“ d”或“ f”,則告訴我它必須是數字而不是列表。
無論如何,要得到它來打印兩位小數的數字?
這是代碼:
ftp = 230
zones = []
def zone(n):
return ftp * n
multipliers = (.55,.56,.75,.76,.85,.86,.95,.96, 1.05, 1.06, 1.20, 1.21, 1.50,1.51)
for i in (multipliers):
zones.append(zone(i))
format = ('%-*s%*s')
header_format = '%-*s%*s'
print '=' * 65
print header_format % (45, 'Zone', 10, 'Range')
print '-' * 65
print format % (45,'Active Recovery Below ==>> ',10, zones[:1])
print format % (45,'Endurance',10, zones[1:3])
print format % (45,'Tempo',10, zones[3:5])
print format % (45,'Sweet Spot',10, zones[5:7])
print format % (45,'Threshhold',10, zones[7:9])
print format % (45,'VO2',10, zones[9:11])
print format % (45,'Anaerobic',10, zones[11:13])
print format % (45,'Neuromuscular Above ==>>',5, zones[12])
print '=' * 65
是的,您只需要相應地調整format
字符串即可。
現在,您有了(帶有多余的括號,就像您在其他地方一樣,BTW):
format = ('%-*s%*s')
此格式將格式化兩個具有給定寬度和對齊方式的字符串-因此,您將獲得的浮點列表作為zones
切片將被“僅字符串化”,而無法控制格式化的詳細信息。
有時您發出單個浮動,有時兩個。 最好將兩個單獨的格式字符串用於兩個單獨的目的。
因此,對於單個浮動
format1 = '%-*s%*.2f'
對於其中兩個
format2 = '%-*s%*.2f%*.2f'
現在,相應地編輯各種print
語句,例如,最后一個將變為
print format1 % (45,'Neuromuscular Above ==>>',5, zones[12])
和它之前的那個
print format2 % (45,'Anaerobic',5,zones[11],5,zones[12])
(這里的括號不是多余的,因為您需要%
運算符的RHS上的元組。
順便說一句,新的字符串format
方法比舊的%
格式化運算符更具可讀性,我建議切換到它。
您可以將數字的格式與其余字符串分開設置:
two_numbers_format = '(%.2f - %.2f)'
然后有:
print format % (45,'Endurance',10, two_numbers_format % zones[1:3])
對於一個數字:
one_number_format = '%.2f'
print format % (45,'Active Recovery Below ==>> ',10, one_number_format % zones[:1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.