字符串比较'1111'< '99'是真的

时间:2015-08-01 09:47:31

标签: python

如果你比较两个字符串,那就有问题了:

>>> "1111">'19'
False
>>> "1111"<'19'
True

为什么'1111'小于'19'?

3 个答案:

答案 0 :(得分:10)

因为比较字符串lexicographically'1'小于'9'(在字符集中较早出现)。在此之后还有其他角色并不重要。

如果您想比较数字,您必须先将字符串转换为数字:

>>> int('1111') > int('19')
True

否则,这与您比较字典单词完全相同; Aaaa小于Ab

答案 1 :(得分:2)

因为比较字符串lexicographically

首先比较第一个字符,在这种情况下是'1''1' - 因为它们是相同的,所以它们会移动到下一个字符。

在下一个字符中,'1'小于'9',因此'1111'小于'19'

答案 2 :(得分:0)

使用type()检查令牌的类型:

type("1111")

输出:

str

这是一个字符串。因此,它将按字典顺序进行比较。