自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
由于不同的字符所占字节数不同,所以要计算字符串的长度,需要先了解各字符所占的字节数。在Python中,数字、英文、小数点、下划线和空格占一个字节;一个汉字可能会占2~4个字节,占几个字节取决于采用的编码。汉字在GBK/GB2312编码中占2个字节,在UTF-8/unicode编码中一般占用3个字节(或4个字节)。下面以Python默认的UTF-8编码为例进行说明,即一个汉字占3个字节,如图3所示。
图3 汉字和英文所占字节个数
在Python中,提供了len()函数计算字符串的长度,语法格式如下:
len(string)
其中,string用于指定要进行长度统计的字符串。例如,定义一个字符串,内容为“人生苦短,我用Python!”,然后应用len()函数计算该字符串的长度,代码如下:
str1 = '人生苦短,我用Python!' # 定义字符串
length = len(str1) # 计算字符串的长度
print(length)
上面的代码在执行后,将输出结果“14”。
从上面的结果中可以看出,在默认的情况下,通过len()函数计算字符串的长度时,不区分英文、数字和汉字,所有字符都按一个字符计算。
在实际开发时,有时需要获取字符串实际所占的字节数,即如果采用UTF-8编码,汉字占3个字节,采用GBK或者GB2312时,汉字占2个字节。这时,可以通过使用encode()方法进行编码后再进行获取。例如,如果要获取采用UTF-8编码的字符串的长度,可以使用下面的代码:
str1 = '人生苦短,我用Python!' # 定义字符串
length = len(str1.encode()) # 计算UTF-8编码的字符串的长度
print(length)
上面的代码在执行后,将显示“28”。这是因为汉字加中文标点符号共7个,占21个字节,英文字母和英文的标点符号占7个字节,共28个字节。
如果要获取采用GBK编码的字符串的长度,可以使用下面的代码。
str1 = '人生苦短,我用Python!' # 定义字符串
length = len(str1.encode('gbk')) # 计算GBK编码的字符串的长度
print(length)
上面的代码在执行后,将显示“21”。这是因为汉字加中文标点符号共7个,占14个字节,英文字母和英文标点符号占7个字节,共21个字节。