Python3入门中篇
数据类型
布尔(bool)
只有 True 和 False 两个值,表示真或假
数字(number)
整型(int)
整数值,可正数亦可复数,无小数。
3.x 整型是没有限制大小的,可以当作 Long 类型使用,所以 3.x 没有 2.x 的 Long 类型。
浮点型(float)
浮点型由整数部分与小数部分组成。
浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
复数(complex)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示。
复数的实部 a 和虚部 b 都是浮点型。
数字运算
不同类型的数字混合运算时会将整数转换为浮点数
在不同的机器上浮点运算的结果可能会不一样
在整数除法中,除法 / 总是返回一个浮点数。
如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //。
// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。
在交互模式中,最后被输出的表达式结果被赋值给变量 _,_ 是个只读变量
数学函数
注:以下函数的使用,需先导入 math 包。
随机数函数
注:以下函数的使用,需先导入 random 包。
三角函数
注:以下函数的使用,需先导入 math 包。
数学常量
字符串(string)
单引号和双引号使用完全相同。
使用三引号(’’'或""")可以指定一个多行字符串。
转义符(反斜杠)可以用来转义,使用r可以让反斜杠不发生转义。
如r"this is a line with \n",则\n会显示,并不是换行。
按字面意义级联字符串。
如"this " "is " "string"会被自动转换为this is string。
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
字符串不能改变。
没有单独的字符类型,一个字符就是长度为 1 的字符串。
字符串的截取的语法格式如下:变量[头下标:尾下标]。
转义字符
字符串运算符
字符串格式化
在 Python 中,字符串格式化不是 sprintf 函数,而是用 % 符号。
例如:
print("我叫%s, 今年 %d 岁!" % ('小明', 10))
// 输出:
我叫小明, 今年 10 岁!
格式化符号:
辅助指令:
Python 2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
**
- 多行字符串
**
- 用三引号(’’’ 或 “”")包裹字符串内容
- 多行字符串内容支持转义符,用法与单双引号一样
- 三引号包裹的内容,有变量接收或操作即字符串,否则就是多行注释
实例:
string = '''
print(\tmath.fabs(-10))
print(\nrandom.choice(li))
'''
print(string)
输出:
print( math.fabs(-10))
print(
random.choice(li))
Unicode
在 2.x 中,普通字符串是以 8 位 ASCII 码进行存储的。
而 Unicode 字符串则存储为 16 位 Unicode 字符串,这样能够表示更多的字符集。
使用的语法是在字符串前面加上前缀 u。
在 3.x 中,所有的字符串都是 Unicode 字符串。
字符串函数
字节(bytes)
在 3.x 中,字符串和二进制数据完全区分开。
文本总是 Unicode,由 str 类型表示,二进制数据则由 bytes 类型表示。
Python 3 不会以任意隐式的方式混用 str 和 bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。
bytes 类型与 str 类型,二者的方法仅有 encode() 和 decode() 不同。
bytes 类型数据需在常规的 str 类型前加个 b 以示区分,例如 b’abc’。
只有在需要将 str 编码(encode)成 bytes 的时候。
比如:通过网络传输数据;或者需要将 bytes 解码(decode)成 str 的时候, 我们才会关注 str 和 bytes 的区别。
bytes 转 str:
b'abc'.decode()
str(b'abc')
str(b'abc', encoding='utf-8')
str 转 bytes:
'中国'.encode()
bytes('中国', encoding='utf-8')