Was ist der Unterschied zwischen raw_input()
y input()
in Python 3?
- Wie kann ich raw_input in Python 3 verwenden? (9 Antworten )
Antworten
Zu viele Anzeigen?Der Unterschied besteht darin, dass raw_input()
existiert nicht in Python 3.x, während input()
tut. Eigentlich ist die alte raw_input()
wurde umbenannt in input()
und die alte input()
ist verschwunden, kann aber leicht simuliert werden, indem man eval(input())
. (Denken Sie daran, dass eval()
ist böse. Versuchen Sie, Ihre Eingaben nach Möglichkeit auf sicherere Weise zu analysieren).
Python 2:
-
raw_input()
nimmt genau das, was der Benutzer eingegeben hat, und gibt es als Zeichenkette zurück. -
input()
nimmt zunächst dieraw_input()
und führt dann eineeval()
auch darauf.
Der Hauptunterschied besteht darin, dass input()
erwartet eine syntaktisch korrekte Python-Anweisung, bei der raw_input()
nicht.
Python 3:
raw_input()
wurde umbenannt ininput()
also jetztinput()
gibt die genaue Zeichenkette zurück.- Alte
input()
wurde entfernt.
Wenn Sie die alte input()
d.h. Sie müssen eine Benutzereingabe als Python-Anweisung auswerten, müssen Sie dies manuell tun, indem Sie eval(input())
.
In Python 3, raw_input()
gibt es nicht, was Sven bereits erwähnt hat.
In Python 2 wird die input()
Funktion wertet Ihre Eingabe aus.
Beispiel:
name = input("what is your name ?")
what is your name ?harsha
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name ?")
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
Im obigen Beispiel versucht Python 2.x, harsha als Variable und nicht als String auszuwerten. Um dies zu vermeiden, können wir doppelte Anführungszeichen um unsere Eingabe wie "harsha" verwenden:
>>> name = input("what is your name?")
what is your name?"harsha"
>>> print(name)
harsha
rohe_eingabe()
Die Funktion raw_input()` wertet nicht aus, sondern liest einfach, was Sie eingeben.
Beispiel:
name = raw_input("what is your name ?")
what is your name ?harsha
>>> name
'harsha'
Beispiel:
name = eval(raw_input("what is your name?"))
what is your name?harsha
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
name = eval(raw_input("what is your name?"))
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
Im obigen Beispiel habe ich gerade versucht, die Benutzereingabe mit dem eval
Funktion.
Ich möchte die von allen Beteiligten gegebene Erklärung für die python 2 benutzer . raw_input()
die, wie Sie inzwischen wissen, alle Daten auswertet, die der Benutzer als Zeichenkette eingibt. Das bedeutet, dass Python nicht noch einmal versucht, die eingegebenen Daten zu verstehen. Alles, was er in Betracht zieht, ist, dass die eingegebenen Daten eine Zeichenkette sind, unabhängig davon, ob es sich um eine tatsächliche Zeichenkette oder eine Zahl handelt oder nicht.
Während input()
auf der anderen Seite versucht, die vom Benutzer eingegebenen Daten zu verstehen. So wird die Eingabe wie helloworld
würde den Fehler sogar als ' helloworld is undefined
'.
Zusammenfassend lässt sich sagen, dass für python 2 um auch eine Zeichenkette einzugeben, müssen Sie diese wie folgt eingeben: ' helloworld
', die in Python übliche Struktur zur Verwendung von Zeichenketten.
- See previous answers
- Weitere Antworten anzeigen