[Tutor] commandline unable to read numbers?

Dave Angel d at davea.name
Sun Aug 7 13:04:08 CEST 2011


On 08/07/2011 01:00 AM, Steven D'Aprano wrote:
> Robert Sjoblom wrote:
>> I have a quite odd problem, and I've come across it before but
>> probably ignored it at the time because I had other concerns. I've
>> tried googling for the answer but haven't really come closer to
>> solving it.
>> This is what happens:
>> C:\[path]\nester>C:\Python32\python.ex
>> e setup.py register
>> running register
>> running check
>> We need to know who you are, so please choose either:
>>  1. use your existing login,
>>  2. register as a new user,
>>  3. have the server generate a new password for you (and email it to 
>> you), or
>>  4. quit
>> Your selection [default 1]:
>> 1
>> Please choose one of the four options!
>
> Looks like a bug in the setup.py script. You should report it to the 
> author of the package.
>
> Have you tried just pressing enter without entering anything?
>
>
>> No matter what I enter it will loop back. It seems my commandline
>> can't read numbers? The other time I noticed it was while working on a
>> notebook example:
> [...]
>> This code works in IDLE, so I know it's nothing in the actual code
>> that's a problem, 
>
> Apart from the fact that it is incomplete and won't run as given, it 
> seems fine.
>
>
>> but when I run it in commandline it will just repeat
>> "is not a valid choice." Note that it does this no matter what I
>> actually enter, it won't actually get any kind of input except the
>> enter key. So I suppose it's a problem with input() (I'm using python
>> 3.2 btw). Anyone have any insights?
>
> You're not telling us how you're running it from the command line. My 
> guess is that when you try, you're ending up with a different version 
> of Python, namely Python 2.x, where input() has different semantics.
>
> Try putting
>
> print("choice = ", choice, type(choice))
>
> immediately after the call to input in your code, and seeing what it 
> prints. My guess is that it will claim choice is a int instead of a 
> string.
>
>
One other thing to test is to print sys.version at the beginning of your 
program.  That will confirm Steven's hypothesis that you have two 
different versions of Python.  (Clearly, you'll also need to import sys)



-- 

DaveA



More information about the Tutor mailing list