一、数据类型和变量
- 数据类型:
- 整形
- 浮点型
- 字符串
- ''或者""表示
- 格式化
A. print("我是%s,今年%d岁了。") % ("张三",26)
B. print("我叫{},今年{}岁了。".format("张三",26)) - 三个单引号表示其中的字符串可以跨行显示
print('''我叫张三,
今年十八。''') - 计算字符串长度/字节数: len('ABC') len(b'ABC')
- 布尔值:True False
- 布尔运算 and or not
- 空值 None
- 变量:
python是动态语言,变量本身类型不固定 - 常量:
在Python中,通常用全部大写的变量名表示常量
二、编码:
- 为什么字符编码是一个令人头疼的问题?
因为我们的计算机只能处理数字,如果要处理文本,必须将文本转换为数字才能处理。要实现这样的转换,必须建立一套转换规则,这就是编码。 - ASCII编码: 包含127个字符,包含大小写英文字母、数字和一些符号。(美国制定)
- GB2312编码:
包含了中文字符。(中国制定) - Unicode编码:
Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
ASCII编码是1个字节,而Unicode编码通常是2个字节。 - utf-8编码: (可变长编码)
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。 - 计算机系统通用的字符编码工作方式: 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
- 单个字符的编码:
- ord()函数:获取单个字符的整数表示 eg:ord('A')
- chr()函数:把编码转换为对应的字符 eg:chr(66)
- 为什么要编码解码: 由于字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes,需要用encode()方法。如果从网络或者磁盘读取了字节流,那么读取到的数据就是bytes,需要把bytes变为str,需要用decode()方法。
- Python对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'456'
- "ABC"和b"ABC"的区别:
- "ABC":是string;
- b"ABC":是bytes类型,每个字符只占用一个字节
- 编码:以unicode表示的string通过encode()方法可以编码为指定的bytes
e.g.
zhBytes = '中文'.encode('utf-8') print(zhBytes)
结果:b'\xe4\xb8\xad\xe6\x96\x87' - 解码:将bytes转为str
e.g.
zhStr = b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') print(zhStr)
结果:中文