Python Traceback (most recent call last)

Python Traceback (most recent call last)

You are using Python 2 for which the input() function tries to evaluate the expression entered. Because you enter a string, Python treats it as a name and tries to evaluate it. If there is no variable defined with that name you will get a NameError exception.

To fix the problem, in Python 2, you can use raw_input(). This returns the string entered by the user and does not attempt to evaluate it.

Note that if you were using Python 3, input() behaves the same as raw_input() does in Python 2.

In Python2, input is evaluated, input() is equivalent to eval(raw_input()). When you enter klj, Python tries to evaluate that name and raises an error because that name is not defined.

Use raw_input to get a string from the user in Python2.

Demo 1: klj is not defined:

>>> input()
klj
Traceback (most recent call last):
  File <stdin>, line 1, in <module>
  File <string>, line 1, in <module>
NameError: name klj is not defined

Demo 2: klj is defined:

>>> klj = hi
>>> input()
klj
hi

Demo 3: getting a string with raw_input:

>>> raw_input()
klj
klj

Python Traceback (most recent call last)

Leave a Reply

Your email address will not be published. Required fields are marked *