python if else只转到else部分
我有下面的简单代码,用于检查用户输入python if else只转到else部分,python,python-2.7,Python,Python 2.7,我有下面的简单代码,用于检查用户输入 while True: num = raw_input("Enter the number :") if (num >= 1 and num <= 5): break else: print "Error! Enter again :" 为True时: num=原始输入(“输入数字:”) 如果(num>=1且num您需要将其强制转换为int- num = int(raw_input("E
while True:
num = raw_input("Enter the number :")
if (num >= 1 and num <= 5):
break
else:
print "Error! Enter again :"
为True时:
num=原始输入(“输入数字:”)
如果(num>=1且num您需要将其强制转换为int
-
num = int(raw_input("Enter the number :"))
由于raw\u input
读取行并将其转换为stringnum
是字符串,而不是数字。您需要首先使用int()
将raw\u input
的返回值转换为数字:
>>n=原始输入('Type stuff:')
打字:123
>>>类型(n)
>>>n
'123'
>>>int(n)
123
>>>类型(int(n))
可能是因为“num”实际上是一个字符串。您应该首先转换它。我认为尝试将字符串与数字进行比较是一个错误,但我编写Python已经有一段时间了。num=int(原始输入(“输入数字”))
Fun python事实:您也可以编写if 1,这称为链式比较表达式。出于好奇,为什么这不是一个错误?我想不出一个场景,其中比较字符串和数字是有意义的。@Carcigenicate您可以在这里找到有关此的更多详细信息:@Carcigenicate在python 3和ab中生成错误以上版本。你能解释一下输入[2]-输出[2]
?因为如果用户提供字符串作为输入,我也想拒绝它。@Marievi:raw\u input()
总是返回字符串。由你来解释它们的意思。谢谢你的澄清!
>>> n = raw_input('Type stuff: ')
Type stuff: 123
>>> type(n)
<type 'str'>
>>> n
'123'
>>> int(n)
123
>>> type(int(n))
<type 'int'>