私はPythonの初心者です。私はPython計算機をコーディングしていますが、浮動小数点数は0.1 + 0.2 != 0.3
なので、私は小数点モジュールを使用していたので迷惑です。浮動小数点数を入力から小数点に変換するスクリプトをコーディングしました。私は最初に入力文字列をフォーマットし、それをリストに分割しました。私はこのリスト(evalvarと呼ばれる)でスクリプトを実行しますが、evalvarを上書きするためにi(反復)の値を変更するたびに何も起こりません。 コード:forループ内の反復の値をPythonでどのように変更できますか?
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
を置き換えました。
をあなたは申し訳ありませんが、セッション –
を使用することができ、あなたがセッションで何を意味するか:あなたはすなわち、
operand, operator, operand
トリプレットにご入力を解析する方が良いオペランドからnumericalsを構築し、運用のためのoperator
モジュールを使用したいですか? –文字列は不変ですが、あなたはevalvarに反映される方法でiを変更することはできません。代わりにインデックスで置き換えることができます。ただし、文字列の作成は実際にはDecimalを作成するものではありません。 'eval'を計画しているなら、再考することを強くお勧めします。 – jonrsharpe