1、概述
为什么今天会写一个这个内容呢,主要是当时学习时确实遇到了这个,并且作者以为比较的是字符串的长度,但是后来学到后发现并不是这样,里面涉及到了关键点ASCII码,现在我就再来说下哈。
2、字符串比较规则
按照以下两种比较规则进行比较
- 比较的字符首字母不同时比较ASCII码值。
- 比较的字符首字母相同,则按照字符长度判断。
说到Python字符串比较,例如下面这个代码
print("abc">"bca")上面是一段Python输出语句,问下他的结果应该是什么?
这种逻辑运算比较中结果一定是布尔值类型,如果你认为是按照字符长度比较的,那你就大错特错了。
他的输出返回值为:False
下面是一份ASCII码表,里面记录了键盘中的按键所对应的ASCII码值,而我们的字符串比较大小也正是使用了这种规则进行比较的。
2.1 比较的字符首字母不同时比较ASCII码值
- 字符串首字符不同时,按照ASCII比较双方第一个字符的值,最后返回结果。
#例如还是这个
print("abc">"bca")
----------------------------------------
a的ASCII码为:97 b的ASCII码为:98 (第一位,b的ASCII码值>a的ASCII码,b>a)
----------------------------------------
最后得出结论:bca的第一个b的ASCII大于abc的开头字符a的ASCII码,后续无序比较,得出这里应该是abc<bca,但abc>bca不成立,所以返回False。
2.2 比较的字符首字母相同,则按照字符长度判断
- 假如首字符相同,都是a,则后续直接比较双方的字符长度,得出结果。
print("abcd">"abc")
----------------------------------------
首字母相同,都是a,所以比较字符长度。
abcd 长度为:4
abc 长度为:3
----------------------------------------
所以得出结论:abcd>abc,打印输出True。