Python中的字符串与整数比较

3

可能重复:
Python如何比较字符串和整数?

我在Python中进行了一些比较。我惊讶地发现我可以将一个字符串与一个整数进行比较。然后我做了一个id检查,发现实际上字符串的id大于整数的id,我认为这就是我得到这个输出的原因。

In [19]: 'a' < 3
Out[19]: False

In [20]: 'a'>3
Out[20]: True

In [17]: id('a')
Out[17]: 140414909035824

In [18]: id(3)
Out[18]: 23119752

请确认我是否正确解释了这种行为(Python在ID级别上进行比较)。

1
是的,这对于Python 2是正确的,但对于Python 3不是,这个问题以前已经被问过了。 - jamylak
重复:https://dev59.com/wXA75IYBdhLWcg3weZDu - rubik
谢谢,因为字符串比整数包含更多的单词,所以在上述问题中字符串大于整数。 - Varun
如果您阅读了重复的帖子,您会看到它说“不同类型通过其类型名称进行比较”。不确定您所说的是哪种类型的单词,但无论您指的是哪种类型的单词都没有关系。 - jamylak
1个回答

5

Python 2.x的跨类型比较是历史偶然。根据文档

(...)不同类型的对象总是比较不相等,并且按一致但任意的顺序排列

在Python 3.x中,这个问题得到了解决-这些比较会抛出类型错误。


我对Python(编程本身)非常陌生,您认为在这种情况下我应该从Python 3开始而不是Python 2吗? - Varun
在我看来,最好还是坚持使用Python 2,因为有更多的资源可用。 - jamylak
是的,绝对没错。Python 3 在许多方面都更加清晰简洁。目前使用 Python 2 的唯一原因是其普及度和更多的库。但这些都不重要,当你在学习一门新语言或编程时。 - phihag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接