Noob Question: Force input to be int?

Daniel Nogradi nogradi at gmail.com
Tue Jan 23 11:25:06 CET 2007


> I have a piece of code that looks like this:
>
> if len(BuildList) > 0:
>     print "The script found %d game directories:" % len(BuildList)
>     print
>     num = 0
>     for i in BuildList:
>         print str(num) +"       " + i
>         num = num + 1
>     print
>     print "Select a build number from 0 to " + str(len(BuildList) - 1)
>     buildNum = int(raw_input('Select build #> '))
>
>     while buildNum > (len(BuildList) -1) or buildNum <= -1:
>         print
>         print "Error: Invalid build number!"
>         print "Select a build number from 0 to " + str(len(BuildList) -
> 1)
>         print
>         buildNum = int(raw_input('Select build: '))
>
> The problem is with the while buildNum-loop. If the user enters a
> non-numeric value in the buildNum input, the scripts throws an
> exception. I need to constrict the user to ONLY use integers in the
> input box. How can I solve this issue?


How about this:

while True:
    try:
        x = int( raw_input( 'Enter an integer: ' ) )
        break
    except:
        pass

print 'Okay, now I have this integer: %d' % x


HTH,
Daniel



More information about the Python-list mailing list