2016-06-14 54 views
1

我正在學習Python,現在正在使用簡單的代碼編寫和if-elif-else語句。 我有這樣的代碼塊,總是返回else語句,即使我把數字1和30範圍內的數字()代碼沒有返回預期的結果

elif door == "3": 
     print "This is a winning treasure room, congratulations!" 
     print "Pick a number between 1 and 30" 

     number = raw_input ("> ") 

     if number in range (1,10): 
      print "that's a number between 1 and 10" 

     elif number in range (11, 20): 
      print "that's a number between 11 and 20" 

     elif number in range (21, 30): 
      print "that's a number between 21 and 30" 

     else: 
      print "that's not a number we asked for" 

之間我也然後設法:

elif door == "3": 
     print "This is a winning treasure room, congratulations!" 
     print "Pick a number between 1 and 30" 

     number = raw_input ("> ") 

     if number == number in range (1,10): 
      print "that's a number between 1 and 10" 

     elif number == number in range (11, 20): 
      print "that's a number between 11 and 20" 

     elif number == number in range (21, 30): 
      print "that's a number between 21 and 30" 

     else: 
      print "that's not a number we asked for" 

我也嘗試:

if number == x in range (1, 10): 

但是,當然x沒有定義,它會出現一個錯誤。

任何指導讚賞。

+2

歡迎的Python!我猜從輸入讀取的數字是一個字符串,嘗試'int(數字)'也是一個很好的機會學習強大的輸入處理與嘗試和除了;-) – Dilettant

+4

「這是一個數字在1和10之間」不包括10 – warvariuc

回答

3

raw_input()將輸入轉換爲字符串。您需要將其轉換爲整數。

number = int(raw_input ("> ")) 

的raw_input()

然後該功能可以讀取從輸入的線,將其轉換成字符串 (剝離的後換行),並返回。

doc

+1

優秀,我已經瞭解了這一點,但它並沒有發生在我身上。我也意識到,一系列課程忽略了範圍中的最後一個數字,所以選擇'10'也會跳到else語句。現在就開始工作吧。再次感謝 – arumiat

+0

歡迎:) – SilentMonk