ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

【Python】字符串类型之间比较大小

【Python】字符串类型之间比较大小

1、概述


为什么今天会写一个这个内容呢,主要是当时学习时确实遇到了这个,并且作者以为比较的是字符串的长度,但是后来学到后发现并不是这样,里面涉及到了关键点ASCII码,现在我就再来说下哈。

2、字符串比较规则


按照以下两种比较规则进行比较

  1. 比较的字符首字母不同时比较ASCII码值。
  2. 比较的字符首字母相同,则按照字符长度判断。

说到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。

返回列表