In Python 3, I einen einfachen Befehl schreibt also eine ganze Zahl Eingabe vom Benutzer zu akzeptieren:Warum ändert Python eval (Eingabe ("Eingabe eingeben:")) den Datentyp der Eingabe?
x = int(input("Enter a number: "))
Wenn ich den int()
Teil überspringen und einfach x = input("Enter a number: ")
verwende, Datentyp meiner Eingabe der ein String ist, nicht eine ganze Zahl. Ich verstehe das.
Allerdings, wenn ich den folgenden Befehl verwenden:
x = eval(input("Enter a number: "))
der Datentyp der Eingabe 'int'.
Warum passiert das?
vielleicht ist es eine dynamische Typprüfung, wenn Sie eval() verwenden? – cssGEEK
'eval' behandelt die Eingabe so, wie sie in Code geschrieben wurde, macht 'x = 3' im Code eine Ganzzahl, also wird x = eval (" 3 ")' auch x zu einer Ganzzahl machen, aber den Benutzer willkürlich eingeben lassen Code als ihre Eingabe kann ein riesiges Problem sein, wenn sie 'open (__ Datei __, 'w') eingeben. close()' würde es die aktuelle ausführende Datei löschen. –