-
常见内置函数
-
可迭代对象
-
迭代器对象
-
1.abs() print(abs(-30)) # 30 取绝对值
2.all()与any()
l1 = [1, 3, 5, 0]
print(all(l1)) # False 判断列表数据中的布尔值类型(相当于 and)
print(any(l1)) # True 判断列表数据中的布尔值类型(相当于 or)
3.ASCII() 英语与二进制数的转换
4.bin()、oct()、hex() 十进制与二进制、八进制、十六进制的转换
5.bool()、dict()、float()、int()、list()、set()、str()、 bytes()、type()
数据类型转换与查看数据类型
6.callable() 判断是否可以调用
7.ord()与chr()
print(ord('c')) # 99 字母对应数字数
print(chr(99)) # c 数字数对应字母
8.dir() # 查看数据类型中的数据
9.divmod(x,y) # x/y 的整数部分与余数部分组成元组
print(divmod(88, 9)) # (9, 7)
10.enumerate() # 枚举 将列表中的数据一个个for循环得出数据与对应的索引值
l1 = [1, 3, 5]
print(enumerate(l1)) # <enumerate object at 0x0000024396729F98>
for i, j in enumerate(l1):
print(i, j)
11.eval()、exec() 识别字符串中代码的运行
res = 'print(123)'
res1 ='for i in range(2):print(i)'
eval(res) # 123 识别简单的字符串中代码的运行
exec(res1) # 0 1 识别复杂的字符串中代码的运行
12.filter() # 过滤序列中不符合条件的数据
13.format() # 支持关键字取值(按k取值) 并且支持重复使用
14.help() # 查看帮助信息
15.id() # 查看内存地址
16.input()与print() # 输入 输出
17.isinstance() 判断数据类型
print(isinstance([1, 2, 3], int)) # False
18.len() 统计数据值个数
l1 = (0, 1)
print(len(l1)) # 2
19.map() # 映射 列表中所以数据增加或减少同一个数
20.max()与min()、sum() # 最大值与最小值、求和
l1 = [1, 2, 3]
print(max(l1)) # 3
print(min(l1)) # 1
print(sum(l1)) # 6
21.next() # 将可迭代对象转换成迭代器对象
22.open() # 打开文件方式
23.pow() # 幂指数
print(pow(2, 5)) # 32 2的5次方
24.range() # 数据范围
for i in range(3):
print(i) # 0 1 2
25.round() # 四舍五入
print(round(222.2)) # 222
26.zip()
l2 = 'jason'
res = zip(l2)
print(list(res)) # [('j',), ('a',), ('s',), ('o',), ('n',)]
可迭代对象
1.概念
迭代:更新换代,每次迭代使用上一次的结果
2.类型
2.1.# int 不是可迭代对象
2.2.# float 不是可迭代对象
2.3.# bool 不是可迭代对象
2.4.#函数名 不是可迭代对象
2.5.# str.__iter__() 可迭代对象
2.6.# list.__iter__() 可迭代对象
2.7.# tuple.__iter__() 可迭代对象
2.8.# set.__iter__() 可迭代对象
2.9.# dict.__iter__() 可迭代对象
2.10.# 文件 可迭代对象本身是迭代器对象
3.判断方式
内置有__iter__方法的都可称为可迭代对象,可迭代对象支持for循环
4.举例
while True:
print('123') # 不是可迭代对象
count = 1
while count < 4:
print('123') # 是可迭代对象
count += 1
迭代器对象
1.作用:取值方式不依赖索引取值,可以对字典、元组无序数据类型循环取值
2.类型:
str.__iter__().__next__()
list.__iter__().__next__()
tuple.__iter__().__next__()
set.__iter__().__next__()
dict.__iter__().__next__()
with open(r'01常见内置函数.py',encoding='utf8') as f:
f.__next__()
f.__iter__().__next__()
3.判断方式
内置有__iter__与__next__方法的称为迭代器对象,可迭代对象先调用__iter__方法之后变成迭代器对象,迭代器对象调用多次__iter__都是它本身
4.迭代器对象取值
4.1 列表取值
l1 = [1, 2, 3, 4]
res = l1.__iter__()
print(res.__next__()) # 1
print(res.__next__()) # 2
print(res.__next__()) # 3
print(res.__next__()) # 4
print(res.__next__()) # 报错
4.2 字典取值
l1 = {'name':'jason','pwd':123}
res = l1.__iter__()
print(res.__next__()) # name
print(res.__next__()) # pwd
4.3 使用while循环取值
l1 = [22, 34, 55, 67]
res = l1.__iter__()
count = 0
while count < len(l1):
print(res.__next__())
count += 1
5.补充
5.1 迭代器的反复使用
5.1.1 每次都是产生一个新的迭代器对象
l1 = {'name':'jason','pwd':123}
print(l1.__iter__().__next__()) # name
print(l1.__iter__().__next__()) # name
5.1.2 每次使用的都是一个迭代器对象
l1 = {'name':'jason','pwd':123}
res = l1.__iter__()
print(res.__next__()) # name
print(res.__next__()) # pwd
5.2 双下方法
res = l.__iter__() # 可以简写iter(l)
res.__next__() # 可以简写next(res1)
5.3 迭代器对象的特殊地方
可迭代对象与迭代器对象通过打印无法查看内部数据情况,目的是为 了节省内存
for循环的本质
1.语法结构: for 变量名 in 可迭代对象: 2.循环步骤 2.1 for会自动将in后面的数据调用__iter__()变成可迭代对象 2.2 每次循环调用__next__()取值 2.3 最后没有值__next__()会报错,但for能够自动处理该错误,让循环正常结束

posted on
浙公网安备 33010602011771号