Python字符串布尔比较

2024-04-16 17:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在编程时遇到了一些奇怪的问题。我写的程序是一个最小的数字查找器。所以基本上你输入了一个数字列表,程序返回的数字是最低的。有一段时间一切都很顺利,就像我说的,这是一个相当基本的程序,但是当我开始输入2或3位数的数字时,布尔逻辑似乎崩溃了。从2位数和1位数的列表中,例如:
x = [10, 5, 10]

程序将返回10作为最低数字。但在常规的1位数列表中,将返回正确的最小值。所以最终我发现这个错误是因为我忘了把字符串类型转换成整数类型,一旦问题解决了,程序就完美地运行了。但这仍然引出一个有趣的问题,为什么Python认为“10”小于“5”,而“9”大于“5”?为了故意证明Python相信这个事实并且它不是我程序中的某个外部因素,我打开了一个Python解释器并实际输入了"10" < "5",解释器返回了{}。你知道为什么会这样吗?提前谢谢你!在


Tags: 字符串程序证明类型列表编程错误数字
2条回答

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

在字典里,“亚当”<;“eve”是因为“a”<;“e”。类似地,“10”<;“5”,因为“1”小于“5”。在

"10" < "5" 

因为

^{pr2}$

和英语一样

"at" < "i"

按字母顺序排列。在

相关问题 更多 >