Python字符串布尔比较

Python字符串布尔比较,python,string,integer,boolean,Python,String,Integer,Boolean,在进行一些编码挑战时,我遇到了一个非常奇怪的语言怪癖。我正在编写的程序是一个最低的数字查找程序。所以基本上你输入了一个数字列表,程序返回了最低的数字。有一段时间一切都很顺利,就像我说的,这是一个相当基本的程序,但当我开始输入2或3位数字时,布尔逻辑似乎崩溃了。从2位和1位数字列表中,例如: x=[10,5,10] 程序将返回10作为最低数字。但在常规的1位数列表中,将返回正确的最低值。所以最终我发现这个错误是因为我忘了将字符串类型转换成整数类型,一旦修复了,程序就可以完美地运行了。但这仍然引出了

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


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

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


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

Python在比较字符串时使用字典顺序aka,即使字符串仅包含数字

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

“10”<“5”
因为

"1" < "5"
“1”<“5”
和英语一样

"at" < "i"
“在”<“i”
按字母顺序排列。

“10”
因为

"1" < "5"
“1”<“5”
和英语一样

"at" < "i"
“在”<“i”

按字母顺序。

字符串根据字母顺序进行比较。没有对“10”或“5”的求值-它们是字符串,就像“a”、“ab”。。。否则,您将如何回答
“10”<“a”
?根据字母顺序比较可能重复的字符串。没有对“10”或“5”的求值-它们是字符串,就像“a”、“ab”。。。否则,您将如何回答
“10”
?可能的重复