raw_input中的 int 不起作用


while True:
    a = raw_input("Your number: ")
    if a == int: # letters:
        if a > 0 and a % 3 == 0:
            print 'fizz'
        if a > 0 and a % 5 == 0:
            print 'buzz'
        if a > 0 and a % 3 != 0 and a % 5 != 0:
            print a
        if a <= 0:
            print 'bad value'
    else:
        print "Not integer, try again"`

如何使此raw_input工作?我希望它在用户输入是整数时运行游戏,当它不是整数时"重试"。

raw_input()总是返回一个字符串。如果要使其成为 int,请调用 int() 内置函数。如果无法转换字符串的内容,则会引发ValueError。如果你愿意,你可以围绕这一点构建程序的逻辑。

raw_input是一个字符串。 您可以使用 int 将其转换为 int。 如果它不可转换,则会返回错误。 所以使用尝试...除了处理错误。 最好尽可能少地尝试...部分原因是否则可能会意外捕获其他错误。 然后在except部分放入一个continue以跳回起点。

while True:
    try:
        a= int(raw_input("Your number: "))
    except ValueError:
        print "not integer, try again"
        continue
    if a > 0:
        if a % 3 == 0:
            print 'fizz'
        if a % 5 == 0:
            print 'buzz'
        if a % 3 != 0 and a % 5 != 0:
            print a
    else:  #a<=0
            print 'bad value'

最新更新