在进行一些编码挑战时,我遇到了一个非常奇怪的语言怪癖。我正在编写的程序是最低数量的发现者。因此,基本上,您输入了一个数字列表,该程序返回了最低的数字。一切都进行了一段时间,就像我说的是一个相当基本的程序一样,但是当我开始输入2或3位数字时,布尔逻辑似乎崩溃了。在2位和1位数字列表中,例如:
x = [10, 5, 10]
程序将返回10作为最低数字。但是在常规的1位数列表中,将返回正确的最小值。因此,最终我发现该错误是因为我忘记了将字符串类型转换为整数类型,并且一旦修复该程序就可以完美运行。但这仍然引出一个有趣的问题,为什么Python相信“ 10”小于“ 5”,而“ 9”大于“ 5”?为了故意证明Python相信这一事实,并且这不是我程序中的某些外部因素,我打开了一个python解释器,并实际输入了"10" < "5"
,并且该解释器返回了True
。任何想法为什么会这样?先感谢您!
最佳答案
比较字符串时,即使字符串仅包含数字,Python也会使用字典顺序(也称为Lexicographical Order)。
在字典中,“ adam”