2016-07-27 174 views
-2

有人可以幫助我嗎?在while循環中嵌套嘗試

我在while語句中嵌套try語句存在問題。代碼如下所示:

number = raw_input("what is the number? ") 

if number < 11: 
    Print "that is good!" 

else: 
    print "your number had to be lower then 11" 

    raw_input("kies een getal: ") 

while number < 11: 

    try: 
    number == int(number) 

    except ValueError: 
    raw_input(" try again: ") 

當我運行代碼時,它將跳過整個循環!

有人可以解釋這一點,幫助我嗎?

回答

3

raw_input返回一個字符串。你不想那樣。

大部分代碼沒有意義。這是我假設你想做的事:

  • 從用戶接受輸入。

  • 如果可以將輸入轉換爲數字,請將其轉換並繼續。否則,請繼續詢問輸入。

  • 如果輸入作爲數字小於11,那很好。否則,請繼續詢問輸入。

這裏是一種在Python做到這一點:

def get_number(): 
    while True: 
     try: 
      number = int(raw_input("what is the number? ")) 
      return number 
     except ValueError: 
      print("Enter a number, you fool!") 

num = get_number() 

while num >= 11: 
    print("Number should be less than 11...") 
    number = get_number() 
+1

有趣的部分是當我看到你傻瓜! :P –

+0

@sameerasy我喜歡用消極的強化來消除意願,給用戶造成不好的影響。 :) – erip

0

那是什麼腳本的目的是什麼?兩個raw_input命令沒有存儲在任何變量中,並且'number'的值在循環中不會改變,所以它會一直運行,直到您用Ctrl + C停止它爲止。

如果循環未執行,那是因爲條件編號< 11首先不被滿足。

+0

它是一個腳本的一部分,這是我的第一個腳本沒有任何幫助 –