(摘录自https://www.liaoxuefeng.com/)
【数据类型】
整数:可处理任意大小整数,没有限制。十六进制以0x为前缀,用0-9,a-f表示(不区分大小写)。整数运算永远是精确的,包括除法。
浮点数:1.23 = 12.3e-1 = 1.23e0 = 0.123e1。浮点运算可能有四舍五入的误差。大小无限制,但超出一定范围会表示为inf。
字符串:用''或""括起来的任意文本。如果文本中含有'或者"则可能需要使用转义字符'\'。如"I'm ok",'I\'m \"OK\"'。'\n'表示换行,'\t'表示制表符。用r''表示''内部的字符默认不转义。用'''...'''表示多行内容。
布尔值:True、False。以and、or、not运算。
空值:None。不同于0。
【变量】
Python是动态语言,它的变量本身类型是不固定的,可以把任意数据类型赋值给变量,因而更加灵活。实际上,赋值过程是将变量指向数据对象。
【常量】
通常用大写变量名表示常量,但实质上仍为变量。
【除法】
除:9/3=3.0,10/3=3.3333333333333335
地板除:10//3=3
余数:10%3=1
【字符编码】
ASCII:只对大小写英文字母、数字和一些符号进行了编码,用1个字节表示一个字符。
Unicode:把所有语言统一到一套编码里,解决乱码问题。最常用的是用2个字节表示一个字符。但对于纯英文来说浪费存储空间,降低传输效率。
UTF-8:把Unicode字符根据不同的数字大小编码成1-6个字节。英文字母通常1个字节,汉字通常3个字节,只有很生僻的字符才会被编码成4-6个字节。节省空间。一个额外好处是,ASCII实际上可以看成UTF-8编码的一部分。
计算机内存中统一使用Unicode编码,需要保存到硬盘或者传输时转换为UTF-8编码。
【字符串】
Python3版本中字符串以Unicode编码,支持多语言。
ord()函数:获取字符的整数表示。
chr()函数:把编码转换为对应字符。
'\u4e2d\u6587'和'中文'等价。
bytes类型数据:Python中bytes类型数据用带b前缀的单引号或者双引号表示,如:b'ABC'。无法显示为ASCII的字节以\x##显示。
encode()方法:以Unicode表示的字符串通过encode()方法可编码为指定bytes。如:'ABC'.encode('ascii')=b'ABC','中文'.encode('utf-8')=b'\xe4\xb8\xad\xe6\x96\x87'。
decode()方法:bytes通过decode()方法可解码成字符串。如:b'ABC'.decode('ascii')='ABC',b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')='中文'。传入errors='ignore'可忽略错误字节。如:b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')='中'。
len()函数:针对字符串返回字符数,针对bytes返回字节数。如:len('中文')=2,len('中文'.encode('utf-8'))=6。
为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。如果源码中含有中文,则必须以UTF-8格式保存源码,并在文件开头加入以下内容保证解释器按UTF-8编码读取源码:
# -*- coding: utf-8 -*-
【格式化】
用%运算符格式化字符串。在字符串内部用:%s表示用字符串替换,%d表示用整数替换,%f表示用浮点数替换,%x表示用十六进制整数替换。
s%永远可用。单个%用%%转义表达。
'%02d'用0扩充成2位整数。'%2d'用空格扩充成2位整数。'%.2f'小数点后保留2位。
format()方法:用传入参数依次替换字符串内的占位符{0}、{1}……,如:
'Hello, {0}, 成绩提升{1:.1f}%'.format('小明', 17.125)='Hello, 小明, 成绩提升17.1%'。