Python 的一些常规知识点【后续持续更新......】

Python的一些常规知识点

1. 对中文进行len计算为什么会是1?

因为len并不是拿来看对象大小的,它返回的是一个对象中包含的“东西”的个数len(s)

Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

如: len(“您”) = 1; 因为’您’这个字符串里面有一个字符,所以len(‘您’)返回的是1
所以len(“您”) 的值为1 ,相反,字符串转换为bytes 类型后,长度为3

# 字符串len使用
a = "您!"
print(len(a))
# 转换bytes
b = a.encode("utf-8")
print(b, len(b))
#
c = a.encode("gbk")
print(c, len(c)))

结果为:

2
b'\xe6\x82\xa8!' 4
b'\xc4\xfa!' 3

可以看出
python的len 并非是c语言的strlen!!!
一个中文 在gbk 中占据2个字节 在utf-8中占据3个字节。

引申个问题: python字符串截断的问题
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe5 in position 3: unexpected end of data
如下代码:

a 

你可能感兴趣的:(python)