python 的第三方库提供了大量的函数和方法,用来实现各种各样的功能,想要写出功能完备、运行效率高的 python 软件或脚本,熟练掌握这些库的用法是必要的。
但我们在学习并使用 python 时,第一步一定要是熟练掌握 python 的内置类型、内置某个数据类型的函数及方法。
本文将 python 常用内置类型分为 4 类,并将功能相近或相反的函数编组,用 4 篇文章来简述每个类型常用的函数及方法:
- 数值类型(int、float、complex)
- 字符类型(str、bytes、bytearray)
- 集合类型(set、frozenset)
- 映射类型(dict)
注:本文除了数值类型涉及到的内置函数,在开头还介绍了一些常用的内置函数,适合各种类型的数据使用。
注:object 类型参数可用任一类型参数替换,如 int、float、dict……
注:Iterable[int] 为任一元素为 int 类型的可迭代对象,如列表 [1, 2, 3]
1. 获取某个数据类型的属性和方法(show_attrs)
dir():返回当前本地作用域中的名称列表
dir(object):返回 object 的属性和方法列表
2. 获取某个值的哈希值(get_hash)
hash(object):返回 object 的哈希值;若 object 没有哈希值,引发 TypeError
注:可变数据类型(如 list 类型)没有哈希值,所以可以用来判断某个数据类型是否为可变数据类型
注:相同大小的数字变量有相同的哈希值(即使数据类型不同,如 1 和 1.0)
3. 输入输出函数(input、print)
input():从输入中读取一行,将其转换为字符串并返回(末尾的换行符不转换);若读取到 EOF,引发 EOFError
input(object):将 object 写入标准输出(末尾不带换行符)
print(object, …):将 object 打印到标准输出
print(object, …, sep=str):多个 object 以 sep 分隔(默认为空格)
print(object, …, end=str):在 object 打印结束后,打印 end(默认为回车)
4. 判断某个值的数据类型(judge_type)
type(object):返回 object 的类型
isinstance(object, type):object 是 type 类型的对象,返回 True
issubclass(type, type):type_1 是 type_2 的子类,返回 True
5. 获取最大/最小值(max、min)
注:max(…)、min(…) 用法、参数都相同
注:函数中的 int 类型参数可换成 float 类型参数(complex 复数类型值没有最大最小值)
max(int, int, …)
max(Iterable[int]):需 Iterable 非空,否则引发 ValueError
max(Iterable[int], default=Any):若 Iterable 为空,返回 default
max(Iterable[int], …):返回最大的位置参数
6. int、float、complex 类型基本用法
14_000_000 == 14000000:int 类型数值太长时,可以每三个数字加一个下划线用来分割,便于查看,而数值大小不变
注:函数中的 int 参数可换成 float、complex 类型参数
complex():创建模为 0 的复数
complex(int):设置实部 int_1
complex(int, int):设置虚部 int_2
7. 数值基本运算(basic_operate)
注:函数中的 int 参数可换成 float、complex 类型参数
sum(Iterable[int]):返回求和结果
注:函数中的 int 参数可换成 float 类型参数
divmod(int, int) == (int // int, int % int):返回 (整除的商,余数)
注:函数中的 int 参数可换成 float、complex 类型参数
pow(int, int) == int ** int:返回乘方结果
pow(int, int, mod=int):以乘方结果作为被除数,返回余数
注:函数中的 int 参数可换成 float、complex 类型参数
abs(int):返回 int 的绝对值
round(float):返回四舍五入的整数值,半数值(.5) 会舍入到偶数
round(float, ndigits=int):最多保留 int 位小数
8. 将整数用字节形式表示(int_to_bytes)
(123).to_bytes(),:返回表示 int 的字节数组;int 大于 255、小于 0 时,引发 OverflowError
(123).to_bytes(length=int):使用 length 个字节表示
(123).to_bytes(length=int, byteorder=‘little’):最高位字节放在末尾
(123).to_bytes(signed=True):使用 2 的补码表示整数
9. 整数进制转换(base_conversion_int)
bin(int):返回 int 的二进制值
oct(int):返回 int 的八进制值
hex(int):返回 int 的十六进制值
注:函数中的 bin(二进制参数值) 可换成 oct(八进制)、hex(十六进制) 等参数值
int(bin, base=2-36):返回 base 进制数转换为的十进制整数值
10. 小数进制转换(base_conversion_float)
(123.123).hex():返回 float 的十六进制值
float.fromhex(str[hex]):将十六进制值转换为的浮点值