[Tutor] Help

Steven D'Aprano steve at pearwood.info
Tue May 15 21:43:10 EDT 2018

On Tue, May 15, 2018 at 08:01:13PM -0500, boB Stepp wrote:
> On Tue, May 15, 2018 at 7:51 PM, Steven D'Aprano <steve at pearwood.info> wrote:
> > You also seem to be using Python 2. In Python 2, you should never use
> > the input() function. Instead, use raw_input() instead.
> What are you seeing that suggests the OP is using Python 2?  I am
> missing what you are seeing/understanding.

Excellent question :-)

The traceback Sam posted says (in part):

  Move = input('What Will You Do? Fight or Run: ')
  File "<string>", line 1, in <module>
  NameError: name 'Run' is not defined

so the failed line was the call to input(). In Python 3, it would return 
a string. In Python 2, input() evaluates whatever the user types as 
code, hence I infer Sam typed:


and input() tries to evaluate it, which fails.

Also, the following line says:

        if Move == Fight:

If input() returned a string, as in Python 3, then the next line would 
run and Sam would have got a name error for Fight. This didn't happen.


More information about the Tutor mailing list