2015-01-01 35 views
-2
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工作?我希望这个在用户输入是整数时运行游戏,当它不是时则是“再试一次”。int in raw_input不起作用

回答

2

raw_input是一个字符串。您可以使用int将其转换为int。如果它不可兑换,则返回错误。所以使用try ...除了处理错误。尽可能少地放入try ...部分是一个好主意,否则可能会意外捕获其他一些错误。然后将continue放入except部分以跳回到开头。

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' 
5

raw_input()总是返回一个字符串。如果你想使它成为一个整数,请调用int()内置函数。如果字符串的内容不能转换,将会产生一个ValueError。如果你愿意的话,你可以围绕它构建你的程序的逻辑。