This question already has answers here:
input() error - NameError: name '...' is not defined
(15 answers)
Closed 5 years ago.
Whenever I try to execute this code:
name = input("What's your name?")
print("Hello World", name)
By running the command python myprogram.py on the command line, it gives me this error:
What's your name?John
Traceback (most recent call last):
File "HelloWorld.py", line 1, in <module>
name = input("What's your name?")
File "<string>", line 1, in <module>
NameError: name 'John' is not defined
It asks me the name but as soon as I type it and press enter it crashes, what does the error mean?
Thanks.
In Python 2 you should use raw_input instead of input in this case.
Assuming you are using python 2 when you enter just (John) it interprets that as variable. You will either need to enter ("John"), forcing it to see a string, or use name = raw_input() in the first line.
Related
This question already has answers here:
What's the difference between `raw_input()` and `input()` in Python 3? [duplicate]
(6 answers)
Closed 3 years ago.
name = ''
while name != 'your name':
print('Please type your name.')
name = input()
print('Thank you!')
When I input 'your name' or whatever, it doesn't work. I used the Automate the Boring Stuff with Python.
(Error message: Traceback (most recent call last):
File "C:\Users\CSA\Desktop\superami.py", line 4, in <module>
name = input()
File "<string>", line 1, in <module>
NameError: name 'j' is not defined)
This will work in python 2
name = ''
while name != 'your name':
print('Please type your name.')
name = raw_input()
print('Thank you!')
It looks like you're using Python 2, where input will evaluate the string provided by the user.
You should either:
Use Python 3. Python 2 is EOL in 2020.
Use raw_input
Edit: Thank you for your helpful answers! I downloaded Python 3.7.0 but you are right, my Mac is running Python 2.7. I have homework now :) Figure out how to get it running 3.7. I will come back if I have more questions. Thank you!
Beginner here. I'm getting NameError when executing in Mac with Python Launcher. When testing in Python 3.7.0 Shell it works ok. I've read other answers to NameError questions, but do not understand what I'm doing wrong. Help is appreciated.
Code used
first_name = input ("Hi, what's your first name? ")
print ("Hi," , first_name)
Error received
Traceback (most recent call last):
File "/Users/imperio/Documents/pythonpractice/Name.py", line 1, in <module>
first_name = input ("Hi, what's your first name? ")
File "<string>", line 1, in <module>
NameError: name 'Imperio' is not defined
This is most likely because you are not executing it using Python 3+.
Please check the output of python -V to see which version you are executing your code with.
On mac you may already have both installed, Python 3 is sometimes aliased under python3 file.py
Here's your program converted to valid Python2:
first_name = raw_input ("Hi, what's your first name? ")
print ("Hi, {}".format(first_name))
You're running Python 2. In Python 2, input executes the input. raw_input just returns the string entered.
Here's an example:
>>> x = 1
>>> y = 2
>>> z = 3
>>> print input('variable? ')
variable? x # Note output is the value of the variable
1
>>> print input('variable? ')
variable? w # Variable 'w' doesn't exist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'w' is not defined
>>> print raw_input('variable? ') # Raw input just returns the input.
variable? x
x
I'm new to python and have problems with input.
When I'm using command userName = input('What is your name? ')
it says something like this:
>>> userName = input('What is your name? ')
What is your name? Name
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'Name' is not defined
What I must do with it?
change it to :
userName = raw_input('What is your name?')
In Python 2.x:
raw_input() returns string values and
input() attempts to evaluate the input as command
But in python 3.x, input has been scrapped and the function previously known as raw_input is now input.
The function input() evaluates input as a command--that is why numbers work, but not generic strings that cannot be executed. To achieve attaching a string to a variable, use the more universal raw_input(), which reads everything as a string.
Your new code will now look like
userName = raw_input('What is your name? ')
Best of luck, and happy coding!
This question already has answers here:
"NameError: name '' is not defined" after user input in Python [duplicate]
(3 answers)
Closed 7 years ago.
I am having a spot of bother with the following script, it uses a function within it:
def my_function(arg1, arg2, arg3):
print("I love listening to %s" %(arg1))
print("It is normally played at %d BPM" %(arg2))
print("I also like listening to %s" %(arg3))
print("Dat be da bomb playa!")
print("What music do you like listening to?")
ans1 = input(">>")
print("What speed is that usually played at?")
ans2 = input(">>")
print("whats your second favourite genre of music?")
ans3 = input(">>")
my_function(ans1, ans2, ans3)
I get to the first user input: What music do you like listening to? When I type in 'House' and hit enter, I am expecting the second question to be displayed, but I get the following error message:
Traceback (most recent call last):
File "ex19_MyFunction.py", line 26, in <module> ans1 = input(">>")
File "<string>", line 1, in <module>
NameError: name 'house' is not defined**
Any help would be appreciated!
If you use Python2 then use raw_input() because input() try to parse text as python code and you get error.
Your script would run just fine in Python3, so I am assuming you are using Python2. Change input to raw_input.
In Python2, raw_input will convert the input to a string, while input('foo') is equivalent to eval(raw_input('foo')).
This question already has answers here:
"NameError: name '' is not defined" after user input in Python [duplicate]
(3 answers)
Closed 8 years ago.
I have this simple python code which throws errors when i run it. I am not sure what is causing this can somebody help shed some light?
Here is my code file test.py:
name = input("What's your name? ")
print("You are great" + name + "!")
age = input("Your age? ")
print("you look great at" + str(age))
and here is the error:
>>>
What's your name? kiran
Traceback (most recent call last):
File "C:\Users\Sunshine\Desktop\test.py", line 1, in <module>
name = input("What's your name? ")
File "<string>", line 1, in <module>
NameError: name 'kiran' is not defined
>>>
if you are using Python 2.7 the correct way of getting a string from user input is using the method raw_input(""), input("") is for python 3.