为什么Python允许这些比较?

时间:2015-01-10 00:02:34

标签: python string syntax compare python-3.4

我正在使用Python 3.4,想知道为什么Python允许这些代码;

>>> "a">"b"
False
>>> "a"<"b"
True
>>> 

我认为这可能是关于他们在ASCII中的顺序,但如果有人解释为什么Python允许这样的话,我会恭维。奇怪的是,如果是在Python 2x中,我可以理解,但是,它是Python 3x。不应该Python抛出一个SyntaxError吗?

编辑:我尝试过非Ascii字符;

>>> "ç">"a"
True
>>> 

它不是关于ASCII然后我理解,那么为什么Python允许这个呢?

2 个答案:

答案 0 :(得分:3)

Here's a link that describes your question

标准比较(&lt;,&lt; =,&gt;,&gt; =,==,!=)适用于字符串。这些比较使用ASCII或Unicode的标准逐字符比较规则。

编辑:

查看此其他堆栈溢出帖子并查找ord()函数

String Comparison Technique Used by Python

编辑!! ord()在这里不起作用,因为'ç'不是单字节字符

答案 1 :(得分:0)

对朋友列表中的姓名进行排序,对搜索结果进行排序,搜索最佳匹配。 比较字符串是最需要的操作之一。