2015-01-01 50 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。如果你願意的話,你可以圍繞它構建你的程序的邏輯。