我是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