Comparing strings with numbers - Python
本问题已经有最佳答案,请猛点这里访问。
我不明白为什么下面的代码给出了一个正确、错误、正确的结果。
1 2 3 | print("3" <"4") print("3" <"10") print("3" <"30") |
我理解第1和第3个代码,但是为什么
谢谢
建议的链接将为您提供详细的答案。然而,由于我假设您正在开始编程,所以我尝试用一种非常简单的方法来解释。
对于字符串,一旦开始写入:
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.
号
字符比较从第一个字符开始,逐步执行要比较的字符串,直到找到字符差异。
您的第二个声明返回
1 | ord("3") > ord ("1") |