为什么python中的这个逻辑表达式为False?

W3c*_*tor 4 python expression

我的问题是,为什么这些表达式是假的?

Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> num = raw_input("Choose a number: ")
Choose a number: 5
>>> print num
5
>>> print ( num < 18 )
False
>>> print ( num == 5 )
False
Run Code Online (Sandbox Code Playgroud)

因为如果我试试这个:

>>> print ( num > 0 )
True
Run Code Online (Sandbox Code Playgroud)

表达式很好.

Ale*_*lli 9

这个说法:

num = raw_input("Choose a number: ")
Run Code Online (Sandbox Code Playgroud)

使num一个字符串,不是一个数字,尽管它的误导性名称.事实上,Python 2允许您将字符串与数字进行比较,并且在您的版本中认为所有字符串都大于所有数字(字符串的内容不起作用).

使用num = int(num)做出一个整数(并且一定要使用try /除了捕捉可能出现的错误,当用户键入比许多其他的东西!),你开始比较之前.

(在Python 3中,函数的名称从更改raw_inputinput,并且它仍然返回字符串;但是在Python 3中,将字符串与数字进行比较被视为错误,因此您将获得异常而不是TrueFalse在每次比较尝试中获得异常).