Home >Backend Development >Python Tutorial >Why does Python 2.7 throw a `NameError` when entering strings without quotes using `input()`?
User Input Manipulation: Overcoming Quotation Woes in Python 2.7
As you embark on your journey with Python 2.7, you may encounter a peculiar issue when attempting to obtain user input that lacks enclosing quotation marks. This can be a frustrating obstacle, particularly when you want to manipulate the entered string as a Python string.
If you have attempted to use the input() function as follows:
testVar = input("Ask user for something.")
You may have noticed that if the user enters "Hello" without the quotes, the following error occurs:
NameError: name 'Hello' is not defined
This seemingly cryptic error originates from the fact that the input() function in Python 2.7 evaluates the user's input as Python code. Consequently, when encountering a string without enclosing quotes, the interpreter interprets it as a variable reference rather than a string literal.
To resolve this issue and ensure that the user's input is treated as a string without quotations, you can harness the raw_input() function:
testVar = raw_input("Ask user for something.")
Unlike input(), raw_input() preserves the verbatim string entered by the user, allowing you to manipulate it as a string without any additional quotation mark considerations.
Key Takeaway:
Always opt for raw_input() over input() when your primary goal is to obtain a string from a user without requiring enclosing quotation marks. This simple switch will eliminate the potential for erroneous variable references and ensure seamless string manipulation.
The above is the detailed content of Why does Python 2.7 throw a `NameError` when entering strings without quotes using `input()`?. For more information, please follow other related articles on the PHP Chinese website!