python函数深入浅出 3.len()函数详解

1.函数名及其来源

len() 函数命名来源于英文单词length(长度)的简写。
表示字符串占用的编码长度

len 函数的基本语法格式为:

len(string)

有的朋友可能有疑问,什么是编码长度。这里就要展开说一下,字符串在python中
编码不同,占用的字节数也不同。常用的编码有UTF-8和GBK编码:

  • UTF-8 它是一种全国家通过的编码,功能强大,一个英文使用1个字节,一个汉字占用3个字节
  • GBK 是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。它的功能少,仅限于中文字符,当然它所占用的空间大小会随着它的功能而减少,一个汉字占用两个字节

比如同样一个中文字符串“人生苦短,我用Python”
比较下面的输出结果

str='人生苦短,我用Python'
print(len(str))
print(len(str.encode('utf-8')))
print(len(str.encode('gbk')))

输出为:

13 #13个字符,6个中文+1个中文逗号+6个英文字符
27 #中文汉字和中文符号都是3个字节,英文字母1个字节
20 #中文汉字和中文符号都是2个字节,英文字母1个字节

2.函数定义源码及其用法拆解

通常在编码场景中有如下使用场景需要用到len()

  • 需要校验传入参数位数是否符合预设条件,例如11位手机号,固定位数的订单号等
if(len(phonenum==11){
    print('手机号长度符合要求')
}
  • 需要控制参数的长度避免过大或过小
if(len(password>64){
    print('密码长度超出范围')
}
if(len(password<6){
    print('密码长度太小,过于简单不够安全')
}
  • 当字符串混排不知道是否有空格时(空格同样占用字节)可以比较空格去除前后的长度(python空格去除也是有固定方法-strip,replace等等)
>>>origin_word = " hello,gays! "
>>>strip_word = origin_word.strip()  #strip 去除了前后空格,字符串长度发生变化
>>>print(strip_word)
hello,gays!
>>>print(len(origin_word)==len(strip_word))
False

3.版本差异

无版本差异

4.学习建议

len除了用于字符串,还可用于其他数据结构查看长度
常用的list,dict,set,tuple 等数据结构都支持len方法查看其子元素个数,
希望能举一反三,从语义上学习更多的函数用法。

对基础运行环境有疑问的,推荐参考:python函数深入浅出 0.基础篇

你可能感兴趣的:(python函数深入浅出 3.len()函数详解)