我是python新手。我一直在编码一个python计算器,但浮动令人讨厌,因为0.1 + 0.2 != 0.3
所以我一直在使用十进制模块。我编写了一个脚本来将输入中的浮点数转换为小数点。我首先格式化了输入字符串,然后将它分割成一个列表。我在这个列表上运行我的脚本(for循环)(称为evalvar),但是每当我改变i(迭代)的值来覆盖evalvar时,什么都不会发生。 代码:如何在python中更改for循环中的迭代值?
evalvar = ["0.1", "+0.2"]
for i in evalvar:
try:
#i is now equal to "0.1"
i = str("""Decimal('""" + i + """')""")
#i is now equal to """Decimal('0.1')"""
except SyntaxError:
print(evalvar)
我已经自己找出答案了。 而不是使用for i in evalvar
我已使用for i in range(len(evalvar))
并在evalvar[i]
我的for循环取代所有i
。
您可以使用会话 –
对不起,你这是什么意思会议? –
字符串是不可变的,你*不能*以反映在evalvar中的方式改变我。你可以用索引代替它。但请注意,创建字符串实际上并不是创建一个Decimal;如果你打算再评估一下,我强烈建议你重新考虑一下。 – jonrsharpe