风百默 发表于 2022-3-14 22:08:10

这个字符串是怎么比较的?

jackz007 发表于 2022-3-14 22:08:11

本帖最后由 jackz007 于 2022-3-15 01:43 编辑

       作为数值,100 显然大于 7,而作为字符串,'7' 却大于 '100' 。这是因为,字符串比较,论的不是字符串的长度,而是两个字符串中对应字符ASCII 编码值的大小。按照从左到右的顺序,如果两个字符串的对应字符相同,就继续比较下一个字符,如果不同,就立见分晓。在本例中,'7' 的 ASCII 编码值是 55(48 + 7),而 '1' 的 ASCII 编码值是 49(48 + 1),所以,正是由于 '7' > '1' ,从而主导了 '7' > '100' 的结果。

isdkz 发表于 2022-3-14 22:09:42

字符串是从头到尾比较它的字符的 编码,只要有一个比较出结果就不再往下比较。

你可以通过 ord() 函数查看字符的编码。

wp231957 发表于 2022-3-14 22:45:26

看首字符大小,如果同,就看第二个,以此类推

Passepartout 发表于 2022-3-15 08:02:52

https://www.habaijian.com/

Passepartout 发表于 2022-3-15 08:03:25

ascii

甲鱼python 发表于 2022-3-15 09:40:54

7的ascii码大于1 所以 '7'>'100'

Violet01 发表于 2022-3-15 10:48:11

比的应该是ASCII码的值

LXX梧桐 发表于 2022-3-15 14:52:25

因为比较的是数字对应的AscII值的大小

贾政景 发表于 2022-3-15 16:13:17

用python话来说,字符串就如同列表,用你的第一个例子来解释,a=['1','0'],b=['9'],然后比较就从第一个元素比较,就是‘1’<'9',(字符的编码大小和我们平常的认知几乎一样),已经出现了结果------小于,所以a就是小于b 的。

visen 发表于 2022-3-15 17:03:48

贾政景 发表于 2022-3-15 16:13
用python话来说,字符串就如同列表,用你的第一个例子来解释,a=['1','0'],b=['9'],然后比较就从第一个元 ...

正解
页: [1]
查看完整版本: 这个字符串是怎么比较的?