2016-06-14 32 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