请求解释Python 2.7内置函数max()与min()——以max("sehir")、min("sehir")为例
关于Python 2.7中
max()和min()处理字符串的解释 嘿,这个问题其实很好理解,咱们一步步拆解来看~
首先你要知道:当你把字符串传给max()或者min()的时候,这两个函数会把字符串当成一个字符的序列来处理——它们会逐个取出字符串里的每个字符,然后比较这些字符的大小,最终返回最大或最小的那个字符。
那字符的大小是怎么定义的呢?在Python 2.7里,字符的比较是基于它们对应的ASCII编码值(对于常见的英文字符来说就是ASCII码;扩展字符会用Unicode码点,但咱们例子里都是小写字母,只看ASCII就够了)。
咱们拿你说的"sehir"来具体拆解每个字符的ASCII值:
- 字符
s的ASCII码是 115 - 字符
e的ASCII码是 101 - 字符
h的ASCII码是 104 - 字符
i的ASCII码是 105 - 字符
r的ASCII码是 114
把这些数值排个序:101 < 104 < 105 < 114 < 115,对应字符就是e < h < i < r < s。
所以:
max("sehir")会找到ASCII值最大的字符,也就是smin("sehir")会找到ASCII值最小的字符,也就是e
如果你想自己验证这个逻辑,在Python 2.7里可以用ord()函数查看单个字符的ASCII码,比如输入ord('s')就会返回115,输入ord('e')会返回101,一目了然~
另外补充个小知识点:如果字符串里混了大写字母,比如"Sehir",大写S的ASCII码是83,比所有小写字母的ASCII值都小,这时候max("Sehir")还是会返回小写的s,因为它的ASCII值更大。
内容的提问来源于stack exchange,提问作者Shahzodakhon Rustamova
相关产品推荐
相关产品推荐

