我是编程新手。根据我的书,这段代码应该出错。
>>> age = input("How old are you? ")
How old are you? 21
>>> age >= 18
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
vTypeError: unorderable types: str() >= int()
在Sublime中我保存了一个.py文件:This is my .py file.
然后,在我尝试运行它的终端。它没有给我一个错误。 第一次,我通过输入21岁而没有引用它来运行它,它返回True。 然后,我输入17,它返回False。
首先,我的电脑如何知道它们是整数?我没有输入年龄= int(年龄)。
其次当我输入&#34; 21&#34;时,它返回True。没错。为什么会这样?
如何比较字符串和整数?
当我输入&#34; 17&#34;随着我的年龄,它再次回归真实。 **为什么会这样?
这次不仅要比较一个sting和一个整数,还要给出错误的答案。**
答案 0 :(得分:2)
您使用的是Python 2,而本书的作者正在使用Python 3。
在Python 2 input
尝试评估输入的值,因此字符串'21'
实际上变为21
int
。
@Siddharth在评论中指出,str > int
将始终在Python 2中评估为True
。在Python 3中,它将引发书中提到的错误。