if语句在python中

时间:2010-07-15 04:08:06

标签: python

我无法弄清楚为什么我的代码无效,

key_one= raw_input("Enter key (0 <= key <= 127): ")

if key_one in range(128):
    bin_key_one=bin(key_one)[2:]
    print bin_key_one               
else:
    print "You have to enter key (0 <= key <= 127)"

当我输入0到127之间的数字时,它继续前往其他地方! 有人可以告诉我为什么吗?

2 个答案:

答案 0 :(得分:3)

raw_input会返回一个字符串,而"93"中不会range(128)

要确保将苹果与苹果进行比较,请将key_one投射至int

key = int(raw_input("Enter key (0 <= key <= 127): "))
if key in range(128)
   # if condition
else
   # else condition

编辑:Python文档非常棒,所以如果您有疑问,最好先通过阅读文档进行培训。

  

如果存在prompt参数,则将其写入标准输出而不带尾随换行符。然后,该函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。读取EOF时,会引发EOFError。    - http://docs.python.org/library/functions.html#raw_input

答案 1 :(得分:1)

raw_input将返回一个字符串,因此您的if比较失败(您将int与字符串进行比较)。尝试投射:

key_one = int(raw_input('enter key: '))