文章目录
- 前言
- 一、常用Python内置函数
-
- 1 类型转换
- 2 进制转换函数(*)
- 3 数学
- 4 字符编码、解码函数(*)
- 5 基本函数
-
- id() --- 返回变量的内存地址
- len()---返回对象包含的元素个数,适用于列表,元组,集合,字典,字符串,range对象,但不适用zip,map对象
- max(),min(),sum()----返回列表、元组或其他包含有限个元素的可迭代对象中所有元素的最大值,最小值,以及所有元素之和
- type()-----查看数据类型,所有类型都可
- range(start,end,step)------生成range对象,左闭右开,主要用法是与list()等连用生成列表或者循环结构中控制循环次数
- list() ----- 生成空列表或将其他数据类型(range对象,zip对象也适用,多与list()联用)转换为列表
- tuple() ----- 生成空元组或将其他数据类型(range对象,zip对象也适用,多与list()联用)转换为元组
- dict() ----- 生成空字典或将其他数据类型(range对象,zip对象也适用,多与list()联用)转换为列字典
- set() -----生成空集合或将其他数据类型(range对象,zip对象也适用,多与list()联用)转换为集合
- 6 zip对象
- 7 enumerate(枚举)对象
- 8 map对象与filter对象
- 9 排序与逆序
- 10 eval()函数 --- 用于执行存储在字符串中的有效 Python 表达式,并返回表达式的结果。
- 11 基本输入、输出
- 12 关于可迭代对象的小技巧
- 二、 lambda 匿名函数
- 三、 函数的基本参数类型
-
- 1、def(x,y,z) --- 有位置参数和关键字参数两种调用方式:要将将位置参数和关键字参数要理解成函数调用时的两种传参方式,而不是和其他参数一样理解成定义函数时的方式
- 2、def(x,y,z=0) --- 默认值参数(不传就是使用默认值)
- 3、def(x,*,y,z) --- 强制关键词参数:意识是\*后面的参数只能通过关键词的方式来调用(*)
- 4、可变参数(位置):可变是指参数的个数可以是无穷个(会打包成一个元组传进去),位置是指调用方式(*)
- 5、可变参数(关键字):可变是指参数的个数可以是无穷个(会打包成一个元组传进去),关键字是指调用方式(*)
- 6、混合使用 ---- 注意顺序(基本不怎么用到)--- 略(*)
- 四、高阶技巧:元组、列表、字典的解包(开包)操作(*)
- 五、高阶技巧:函数作为另一个函数的参数传入
- 六、高阶技巧:自定义类作为一个函数的参数传入
- 总结
前言
本博客记录一些python中的常用内置函数的使用方法。
【注】:本节标题后打* 的表示了解即可,知道有这个用法,没有 *的就是重点必须要熟练的内容了。
一、常用Python内置函数
1 类型转换
int():将值转换为整数(十进制转换)
# 示例 1
num_str = "123"
num_int = int(num_str)
print(num_int) # 输出: 123
# 示例 2
float_num = 3.14
int_num = int(float_num)
print(int_num) # 输出: 3 #注意不是四舍五入,而是舍尾
float():将值转换为浮点数
# 示例 1
int_num = 10
float_num = float(int_num)
print(float_num) # 输出: 10.0
# 示例 2
str_num = "3.5"
float_num = float(str_num)
print(float_num) # 输出: 3.5
str():将值转换为字符串
# 示例 1
num = 123
str_num = str(num)
print(str_num) # 输出: '123'
# 示例 2
bool_val = True
str_bool = str(bool_val)
print(str_bool) # 输出: 'True'
bool(): 将值转换为布尔值
【注】:这个只要记住python中空就是False,非空就是True;列表等各种数据结构都符合这个规则。
# 示例 1
empty_str = ""
bool_empty = bool(empty_str)
print(bool_empty) # 输出: False
# 示例 2
non_zero_num = 42
bool_non_zero = bool(non_zero_num)
print(bool_non_zero) # 输出: True
# 示例 3
print(bool([])) # 输出: False
round()函数:四舍五入
complex()—用来生成复数,当然复数也可手打,该函数与,int(),float()相比并没有变成复数类型的作用
2 进制转换函数(*)
bin() :将整数(十进制)转换为二进制(0b)
oct():将整数(十进制)转换为八进制(0o)
hex()-----将整数(十进制)转换为十六进制(0x)
print(bin(555)) #十进制转换为二进制 输出:0b1000101011
print(oct(555)) #十进制转换为八进制 输出:0o1053
print(hex(555)) #十进制转换为十六进制 输出:0x22b
print(int('0o1053',8)) #八进制转换为十进制 输出:555
print(int('0b1000101011',2)) #二进制转换为十进制 输出:555
3 数学
math库和cmath的一些注意事项
math里面几个特殊的数
了解几个特别的数在python中表示方法,圆周率(pi),正无穷大(inf),一个无法被表示的数(nan),e------一般用math库 math.pi ,math.inf,math.e ,
【注】:其中无穷大,nan还可以用float()函数表示,float(‘inf’),float(‘nan’)
math.pi :圆周率(pi)
math.e
math.inf 或者 float(‘inf’):正无穷大
math.nan或者float(‘nan’) :nan 一个无法被表示的数
print(math.nan) # nan
print(math.inf) # inf
print(float('inf')) # inf
print(float('nan')) # nan
print(float('inf')-float('inf')) # nan
cmath库演示
import cmath
# 创建一个复数
z1 = 3 + 4j
z2 = 1 - 2j
# 计算复数的和
sum_z = z1 + z2
print("Sum of complex numbers:", sum_z) # 输出: (4+2j)
# 计算复数的模
abs_z1 = abs(z1)
print("Magnitude of z1:", abs_z1) # 输出: 5.0
# 计算复数的平方根
sqrt_z2 = cmath.sqrt(z2)
print("Square root of z2:", sqrt_z2) # 输出: (1.272019649514069+0.7861513777574233j)
abs()—返回数字绝对值或者复数模
pow()-----求幂(pow(x,y)即xy)或求余数(pow(x,y,z)即(xy)%z)
4 字符编码、解码函数(*)
什么是字符编码参考视频:什么是字符编码
ascii()函数—返回字符串的ASCII码表现形式
ord()函数—返回单个字符的Unicode码表现形式
chr()函数—返回Unicode码对应的字符
注意这两个函数是对应单个字符
bytes()函数—生成字节串,或者把字符串转化成指定编码表现形式的字节串。
字节串(bytes),这个函数与str()函数区别在于,str()函数将对象转化成字符串就结束了,byte()函数会将对象转化成某种编码形式才输出的字节串
字符串 .encode()方法-----对字符串以指定编码类型进行编码,输出字节串
这个不是函数,是一个字符串(str)编码方法
字节串 .decode()方法-----对字节串以指定编码类型进行解码,输出字符串
这个不是函数,是一个字节串(bytes)解码方法
【注】:编码是对字符串到字节串,解码是对字节串到字符串
print(ascii('a')) # 'a' 是返回ascii编码形式,不是之间返回ASCII编码数字
print(ascii('贺炬')) # '\u8d3a\u70ac' 扩展的ASCII编码里面也有中文,转化成了编码形式----再对应ASCII表转化成二进制计算机就能够识别了
print(ord('h')) # 104 返回字符的Unicode码
#print(ord('helo')) # 会报错,因为这个函数对象是单个字符,多个字符是不行的
print(ord('董')) # 33891 返回字符的Unicode码
print(chr(65)) # ‘A’ 字符‘A’对应的Unicode码是65,这个数字也是‘A’的ASCII码对应的数字,说明Unicode码是兼容ASCII码的,所有的编码都是在其基础发展的
# 其实ASCII码就是Unicod码的一个子集
print(bytes('董付国','utf-8')) # b'\xe8\x91\xa3\xe4\xbb\x98\xe5\x9b\xbd' 字符串转化成字节码
print('董付国'.encode('utf-8')) # b'\xe8\x91\xa3\xe4\xbb\x98\xe5\x9b\xbd' 字符串.encode()方法默认utf-8编码
print('董付国'.encode()) # b'\xe8\x91\xa3\xe4\xbb\x98\xe5\x9b\xbd' 字符串.encode()方法默认utf-8编码
print(b'\xe8\x91\xa3\xe4\xbb\x98\xe5\x9b\xbd'.decode('utf-8')) # '董付国' 字节码转化成字符串
print(bytes('董付国','gbk')) # b'\xb6\xad\xb8\xb6\xb9\xfa' 字符串转化成字节码
print('董付国'.encode('gbk')) # b'\xb6\xad