Noob Question: Force input to be int?
Daniel Nogradi
nogradi at gmail.com
Tue Jan 23 05:25:06 EST 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