On 04/01/14 11:24, blech...@fireflyuk.net wrote:

At the command line (on my computer)  I can type

h = input(" enter character ")

and when i type a response and enter it, then type h and return, i am
given back the response i put in.

I type j , get 'j' back

Now on my phone i can do the same.

And here is the odd bit
If I type a number in, the response will be the number

type 4, get '4' back

but if i  type in a letter I get an error, the same error as if i had
typed in the response to the command line.

NameError: name '<response to input request>" is not defined


What you describe is the symptoms of using different versions of Python.

In Python v3 (your computer?) input reads a string from the user.
In Python v2 input reads a string and evaluates it as code.
Thus a number evaluates to a number but a string is evaluated like a variable name.

Presumably your Android is running your code under a v2 Python interpreter.

You can try putting raw_input() instead of input() in your code to see if that fixes it. [input() in v3 is a renaming of input() and the original input() function was removed.]

If that works for the simple test case you could try adding this at
the top of your script:

try: input = raw_input
except NameError: pass

But that only addresses one aspect of Python v2/3 incompatibility so there will probably be other fixes needed. The best thing is to align Python versions.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to