Warum Python eval(input("Geben Sie ein: ")) ändern Sie die input Datentyp?

In Python 3, ich Schreibe einen einfachen Befehl zu akzeptieren, die ein integer-Eingabe durch den Benutzer so:

x = int(input("Enter a number: "))

Wenn ich überspringen Sie die int() Teil und nutzen Sie einfach x = input("Enter a number: ") mein input Datentyp ist ein string, kein integer. Ich verstehe, dass.

Jedoch, wenn ich den folgenden Befehl verwenden:

x = eval(input("Enter a number: "))

die Eingabe der Datentyp 'int'.

Warum geschieht dies?

  • vielleicht ist es eine dynamische Typüberprüfung, wenn Sie mit eval()?
  • eval behandelt den input, wie es im code geschrieben, tut x = 3 im code ist eine Ganzzahl, also x = eval("3") wird auch x eine ganze Zahl, jedoch lassen dem Benutzer die Eingabe von beliebigem code als Eingabe kann ein großes problem werden, wenn Sie eingegeben haben, in open(__file__,'w').close() würde es löschen Sie die aktuelle Datei ausführen.
InformationsquelleAutor lebowski | 2016-06-19
Schreibe einen Kommentar