it-swarm.com.de

eingabezeichenfolge in Python 3

Ich habe String-Variablentest. In Python 2.7 funktioniert das einwandfrei.

test = raw_input("enter the test") 
print test

Aber in Python 3.3. ich benutze 

test = input("enter the test") 
print test

mit der Eingabezeichenfolge sdas und ich bekomme eine Fehlermeldung

Traceback (letzter Anruf zuletzt):

Datei "/home/ananiev/PycharmProjects/PigLatin/main.py",

zeile 5, in test = Eingabe ("Test eingeben")

Datei "", Zeile 1, in NameError: Name 'sdas' ist nicht definiert

10
user280926

Sie führen Ihren Python 3-Code mit einem Python 2-Interpreter aus. Andernfalls würde Ihre print-Anweisung eine SyntaxError ausgeben, bevor Sie jemals zur Eingabe aufgefordert wurden.

Das Ergebnis ist, dass Sie Python 2 input verwenden, das versucht, Ihre Eingabe (vermutlich eval) zu sdas zu machen, dass es ungültig ist und stirbt.

12
Cairnarvon

Ich würde sagen, der Code, den Sie brauchen, ist:

test = input("enter the test")
print(test)

Ansonsten sollte es aufgrund eines Syntaxfehlers überhaupt nicht laufen. Die Funktion print erfordert Klammern in Python 3. Ich kann Ihren Fehler jedoch nicht reproduzieren. Sind Sie sicher, dass diese Zeilen diesen Fehler verursachen?

5
Noctua

Nun, die Frage ist sehr einfach, ich weiß nicht, warum die Leute so schlecht antworten.

Lösung: 

Wenn Sie Python 2.x verwenden:

then for evaluated input use "input"
example: number = input("enter a number")

and for string use "raw_input"
example: name = raw_input("enter your name")

Wenn Sie Python 3.x verwenden:

then for evaluated result use "eval" and "input"
example: number = eval(input("enter a number"))

for string use "input"
example: name = input("enter your name")
1
Mayank Jain
temperature = input("What's the current temperature in your city? (please use the format ??C or ???F) >>> ")

### warning... the result from input will <str> on Python 3.x only
### in the case of Python 2.x, the result from input is the variable type <int>
### for the <str> type as the result for Python 2.x it's neccessary to use the another: raw_input()

temp_int = int(temperature[:-1])     # 25 <int> (as example)
temp_str = temperature[-1:]          # "C" <str> (as example)

if temp_str.lower() == 'c':
    print("Your temperature in Fahrenheit is: {}".format(  (9/5 * temp_int) + 32      )  )
Elif temp_str.lower() == 'f':
    print("Your temperature in Celsius is: {}".format(     ((5/9) * (temp_int - 32))  )  )
0
s3n0

sdas wird als Variable gelesen. Um einen String einzugeben, müssen Sie ""

0
none

Ich habe den gleichen Fehler bekommen. Als ich im Terminal "python dateiname.py" eingab, versuchte python2 mit diesem Befehl, python3-Code auszuführen, da python3 geschrieben wird. Es läuft korrekt, wenn ich im Terminal "python3 filename.py" eingebe. Ich hoffe das funktioniert auch für dich.

0
Kevin Wright

In Betriebssystemen wie Ubuntu ist Python vorinstalliert. Die Standardversion ist Python 2.7. Sie können die Version überprüfen, indem Sie den Befehl unten in Ihr Terminal eingeben 

python -V

wenn Sie es installiert haben, aber keine Standardversion festgelegt haben, werden Sie sehen 

python 2.7

im Terminal. Ich werde Ihnen sagen, wie Sie die Standard-Python-Version in Ubuntu einstellen.

Ein einfacher sicherer Weg wäre die Verwendung eines Alias. Fügen Sie dies in ~/.bashrc oder ~/.bash_aliases file ein:

alias python=python3

Nachdem Sie das Obige in die Datei eingefügt haben, führen Sie den folgenden Befehl aus:

source ~/.bash_aliases oder source ~/.bashrc

Überprüfen Sie die Python-Version jetzt erneut mit python -V

wenn Python Version 3.x.x eins ist, dann liegt der Fehler in Ihrer Syntax, z. B. bei Verwendung von print mit Klammern. Ändern Sie es in 

test = input("enter the test")
print(test)
0
Menuka Ishan