如何在使用输入时检查输入的值是整数还是字符串

时间:2015-03-08 18:55:36

标签: python-2.7

我写了一个程序,你猜测一个随机生成的1到100之间的数字:

from random import randint
play='y'
print 'Guess a number between 1 and 100'

while play=='y':
    x = randint(1,100)
    guess=1000
    while guess != x:
        guess=input('Guess: ')
        if guess < x:
            print 'Higher'
        if guess > x:
            print 'Lower'
    print 'You got it! Good Job! The number was ' + str(x)
    play=raw_input('Would you like to play again(y/n)?: ')

raw_input("Press <enter> to exit")

当用户输入不是整数的猜测时如何打印那不是数字,那么让他们继续猜测?

1 个答案:

答案 0 :(得分:0)

使用while True循环重复问题,直至breaks。如果try没有引发ValueError,那么打破循环的唯一方法就是。当int()'hello'之类的内容时,'1.2'会引发错误。

另外,使用raw_input代替input(注意:raw_input将字符串分配给guess)。

while True:    
    guess=raw_input('Guess: ')
    try:
        int(guess)        
        break
    except ValueError:
        print '\nNot an int, try again.' 

更具体地说,请在while guess != x:之后和if guess < x之前插入。