Heim  >  Artikel  >  Backend-Entwicklung  >  Warum löst Python 2.7 einen „NameError“ aus, wenn mit „input()“ Zeichenfolgen ohne Anführungszeichen eingegeben werden?

Warum löst Python 2.7 einen „NameError“ aus, wenn mit „input()“ Zeichenfolgen ohne Anführungszeichen eingegeben werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 14:47:02905Durchsuche

Why does Python 2.7 throw a `NameError` when entering strings without quotes using `input()`?

Manipulation von Benutzereingaben: Probleme mit Zitaten in Python 2.7 überwinden

Wenn Sie Ihre Reise mit Python 2.7 beginnen, stoßen Sie möglicherweise auf ein eigenartiges Problem wenn versucht wird, Benutzereingaben zu erhalten, die keine Anführungszeichen enthalten. Dies kann ein frustrierendes Hindernis sein, insbesondere wenn Sie die eingegebene Zeichenfolge als Python-Zeichenfolge bearbeiten möchten.

Wenn Sie versucht haben, die Funktion input() wie folgt zu verwenden:

testVar = input("Ask user for something.")

Möglicherweise ist Ihnen aufgefallen, dass der folgende Fehler auftritt, wenn der Benutzer „Hallo“ ohne Anführungszeichen eingibt:

NameError: name 'Hello' is not defined

Dieser scheinbar kryptische Fehler entsteht durch die Tatsache, dass die Funktion „input()“ in Python 2.7 die des Benutzers auswertet Eingabe als Python-Code. Wenn daher eine Zeichenfolge ohne eingeschlossene Anführungszeichen auftritt, interpretiert der Interpreter diese als Variablenreferenz und nicht als Zeichenfolgenliteral.

Um dieses Problem zu beheben und sicherzustellen, dass die Benutzereingabe als Zeichenfolge ohne Anführungszeichen behandelt wird, können Sie Folgendes tun: Nutzen Sie die Funktion raw_input():

testVar = raw_input("Ask user for something.")

Im Gegensatz zu input() behält raw_input() die vom Benutzer eingegebene wörtliche Zeichenfolge bei, sodass Sie sie ohne zusätzliche Überlegungen zu Anführungszeichen als Zeichenfolge bearbeiten können.

Wichtige Erkenntnisse:

Entscheiden Sie sich immer für raw_input() statt input(), wenn Ihr primäres Ziel darin besteht, eine Zeichenfolge von einem Benutzer zu erhalten, ohne dass Anführungszeichen eingeschlossen werden müssen. Dieser einfache Schalter eliminiert die Möglichkeit fehlerhafter Variablenreferenzen und sorgt für eine nahtlose String-Manipulation.

Das obige ist der detaillierte Inhalt vonWarum löst Python 2.7 einen „NameError“ aus, wenn mit „input()“ Zeichenfolgen ohne Anführungszeichen eingegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn