关于使用数字比较字符串:使用数字比较字符串 – Python

Comparing strings with numbers - Python

本问题已经有最佳答案,请猛点这里访问。

我不明白为什么下面的代码给出了一个正确、错误、正确的结果。

1
2
3
print("3" <"4")
print("3" <"10")
print("3" <"30")

我理解第1和第3个代码,但是为什么print("3" <"10")没有给出True的响应。

谢谢


建议的链接将为您提供详细的答案。然而,由于我假设您正在开始编程,所以我尝试用一种非常简单的方法来解释。

对于字符串,一旦开始写入:

1
2
3
"ab"<"bc"

"30"<"400"

想象一下:

1
2
['a', 'b'] <['b', 'c']
['3', '0'] <['1', '0', '0']

现在对两个列表的第一个元素进行比较,如果它们相等,则只移动到下一个元素:

第一个应该是真的。第二个应该是错误的。

遵循相同的逻辑并尝试:

1
'30'<'31'

它应该是真的。


从关于比较操作的python文档中:

Strings are compared lexicographically using the numeric equivalents (the result of the built-in function ord()) of their characters.

字符比较从第一个字符开始,逐步执行要比较的字符串,直到找到字符差异。

您的第二个声明返回False,因为:

1
ord("3") > ord ("1")