Python 字符串 boolean 比较

标签 python string integer boolean

在进行一些编码挑战时,我遇到了一个非常奇怪的语言怪癖。我正在编写的程序是一个最小数字查找器。所以基本上你输入了一个数字列表,程序返回了最小的数字。有一段时间一切顺利,就像我说的,这是一个相当基本的程序,但是当我开始输入 2 或 3 位数字时, boolean 逻辑似乎崩溃了。在 2 位数字和 1 位数字的列表中,例如:
x = [10, 5, 10]

程序将返回 10 作为最小数字。但在常规的 1 位列表中,将返回正确的最低值。所以最终我发现这个错误是因为我忘记了将字符串类型转换为整数类型,一旦这个问题被修复,程序就可以完美运行了。但这仍然引出了一个有趣的问题,为什么 Python 认为“10”小于“5”而“9”大于“5”?为了故意证明 Python 相信这个事实并且它不是我程序中的一些外部因素,我打开了一个 python 解释器并实际输入了 "10" < "5"。口译员返回True .为什么会发生这种情况的任何想法?提前致谢!

最佳答案

Python 使用字典顺序又名 Lexicographical Order比较字符串时,即使字符串只包含数字。

在字典中,“亚当”<“夏娃”是因为“a”<“e”。同样,“10”<“5”,因为“1”小于“5”。

关于Python 字符串 boolean 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673792/

相关文章:

algorithm - 压缩随机 32 位整数 : How close can we get to Shannon Entropy?

c++ - 使用 Python 测试 C++ 库

python - 如何正确矢量化而不是迭代?

javascript - Django 和 Ember.js

PHP 生成一个唯一的字符串

SQL:如果我的最大值是 255,使用 tinyint 而不是 Integer 是否有效?

python - Pandas 读取 csv - 处理混合命名/无名列

python - Sympify() 和 Eval() 方程不在函数内执行

php - 在 PHP 中从字符串的开头和结尾删除引号

python - 根据条件求总和以及范围内数字的和