Ich bin neu in Python. Ich habe einen Python-Rechner programmiert, aber Floats sind ärgerlich, weil 0.1 + 0.2 != 0.3
ich so das Dezimal-Modul verwendet habe. Ich habe ein Skript programmiert, um die Floats von der Eingabe in eine Dezimalzahl zu konvertieren. Ich habe zuerst die Eingabe-Zeichenfolge formatiert und dann in eine Liste aufgeteilt. Ich führe mein Skript (for-Schleife) auf dieser Liste (mit dem Namen evalvar), aber immer wenn ich den Wert von i (Iteration) ändere, um evalvar zu überschreiben, passiert nichts. Code:Wie kann ich den Wert einer Iteration innerhalb einer for-Schleife in Python ändern?
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)
Ich habe mich die Antwort ausgearbeitet. Anstatt for i in evalvar
zu verwenden, habe ich for i in range(len(evalvar))
verwendet und alle i
's in meiner for-Schleife mit evalvar[i]
ersetzt.
Sie Session –
Leider verwenden können, was meinst du Sitzung? –
Strings sind unveränderlich, Sie * können * ich nicht in einer Weise ändern, die sich in Evalvar widerspiegelt. Sie könnten es stattdessen durch den Index ersetzen. Beachten Sie jedoch, dass beim Erstellen der Zeichenfolge kein Dezimalwert erstellt wird. Wenn Sie planen, dann "eval", dass ich Ihnen dringend empfehlen würde, überdenken. – jonrsharpe