我有一个带有输出的程序,但我希望输出是干净的(因此没有括号或引号),并且我希望数字四舍五入到2位小数。你知道吗
我尝试使用round函数和.join方法来处理方括号,但都不起作用。你知道吗
import csv
import locale
from pprint import pprint, pformat
import locale
locale.setlocale(locale.LC_ALL, 'Dutch_Netherlands.1252')
gem_names = 'sellerRating', 'Duration', 'ClosePrice', 'OpenPrice'
gemiddelde = {gem_name: 0 for gem_name in gem_names} # Zet de totale op nul.
num_waarden = 0
with open('bijlage.txt', newline='') as bestand:
csvreader = csv.DictReader(bestand, delimiter=';')
for row in csvreader:
for gem_name in gem_names:
gemiddelde[gem_name] += locale.atof(row[gem_name])
num_waarden += 1
for gem_name, total in gemiddelde.items():
gemiddelde[gem_name] = gemiddelde[gem_name] / num_waarden
print ('Dit zijn de gemiddelden:')
pprint(gemiddelde)
这是我得到的结果:
Dit zijn de gemiddelden:
{'ClosePrice': 9.712094266277953,
'Duration': 1.6350826044703595,
'OpenPrice': 3.553561710398435,
'sellerRating': 940.226433430515}
我尝试round(gemiddelde)
时出错。当我试图使用.join
时,我的数字消失了。有人能帮我把这个弄干净吗?你知道吗
最好不要在计算过程中
round
,因为舍入误差可能会增加。相反,只需使用循环和格式字符串来打印值,而不是依赖pprint
,例如:或者类似的,使用
str.format
:相关问题 更多 >
编程相关推荐