云游碧海 发表于 2020-9-3 17:58:08

元组中的元素比较大小

print(max(['2','111']))的输出结果为什么输出的是2啊?不是很懂,希望解答,谢谢

疾风怪盗 发表于 2020-9-3 18:04:31

本帖最后由 疾风怪盗 于 2020-9-3 18:06 编辑

字符串的比较大小,和数值比较大小概念不一样
是一位一位进行比较的



字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0
https://zhidao.baidu.com/question/558202137825309252.html

学习型motor 发表于 2020-9-3 19:23:06

没记错的话,字符串好像是从首位开始比较大小,出现大小的则无视后方位数,相等则看下一位,

_2_ 发表于 2020-9-3 19:34:09

因为比较字符串的时候实际上是比较每个字符的 ASCII 码,如果不同就返回较大的那个,相同就继续比较
只要改成
print(max())
就会按预期输出

www.7Q.com 发表于 2020-9-3 22:13:30

元组里面的比较是从首位开始做比较的,ASCII码中2>1,然后后面的就不用比较了,如果第一位相同才继续比较第二位
页: [1]
查看完整版本: 元组中的元素比较大小