python迭代器和常见内置函数
1.怎么理解迭代?
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
通俗易懂的讲就是手机软件更新迭代,是基于原有的数据进行更新换代的
2.什么是可迭代对象?
内置有__iter__方法的对象可称为可迭代对象
支持for循环取值的、
可迭代对象的类型有:
str,list,dic,tuple,set,file
迭代器对象
1.什么是迭代器对象?
内置有__iter__和__next__的对象都称为迭代器对象
2.可迭代对象与迭代器对象之间的关系
可迭代对象调用__iter__方法之后就变成了迭代器对象
迭代器对象调用__iter__方法无论多少次还是迭代器对象本身
eg:
l1 = ['summer','jerry','sun']
res = l1.__iter__()
#迭代器对象 每次使用的都是一个迭代器对象
print(res.__next__()) #summe
print(res.__next__()) #jerry
print(res.__next__()) #sun
print(res.__next__()) #报错
#迭代器对象调用__next__方法取值,取到最后没有值的时候系统就会报错
#迭代器对象反复使用
l1 = ['summer','jerry','sun']
print(l1.__iter__().__next__()) # summer
print(l1.__iter__().__next__()) # summer
print(l1.__iter__().__next__()) # summer
print(l1.__iter__().__next__()) # summer
# 不使用for循环依次打印出列表中的所有数据值
l1 = [11,12,33,55,66,77]
res = l1.__iter__()
count = 0
while count<len(l1):
print(res.__next__())
count += 1
#11 12 33 55 66 77
迭代器的核心功能是不依赖索引取值的方法
for循环的本质
语法结构:
for 变量名 in 可迭代对象:
for循环体代码
1.for会自动将in后面的可迭代对象调用__iter__()变成迭代器对象
2.每次循环取值其实就是迭代器对象调用
__nextk__()方法取值
3.没有值可取的情况__next__()方法就会直接报错,而for循环能够自动处理该错误,让循环正常结束
常见内置函数
1.abs()求绝对值
2.all()和any() 传容器类型的数据例如列表,字典等
all()所有的数据值都为Ture的情况下结果才是Ture
any() 所有的数据值只要有一个为Ture结果就是Ture
3.bin()二进制 #0b1010 十进制转其他进制
oct()十进制 #0o12 十进制转其他进制
hex()十六进制 #0xa 十进制转其他进制
4.int() 类型转换 其他进制转十进制
print(int(0b1010))二进制转十进制
5.bytes() 类型转换
encode 编码
decode 解码
res = bytes('你好','utf8')编码
res1 = str(res ,'utf8') 解码
6.callable() 调用 加括号执行
判断某个变量是否可以加括号调用
7.chr() 通过数字给字符 A-Z 65-90
ord() 通过字符给数字 a-z 97-122
根据ASCII码表来转换的
8.dir() 获取对象内部可以使用的名字
通过.获取的数据 点的方式获取
9.divmod() 获取除法之后的整数和余数
获取的值是元组 要用两个数去接收
res,a1 = divmod(100,3)
if a1 :
res += 1
print('总页数%s’%res)
10.enumerate() 枚举
默认起始位置为[0] 可自定义
l1 = ['summer','jason']
for i,j in enumerate(l1):
print(i,j) #0 summer 1 jason
11.eval()
能够识别字符串中python代码执行
不能够识别结构复杂的代码
exec()
能够识别复杂的代码结构 for循环
12. hash()返回一串随机的数字(哈希值)
13.help() 查看帮助手册
14.isinstance() 判断某个数据是否属于 某个数据类型
15.pow()幂指数 获取乘方数
16.round() 获取指定位数的小数 四舍五入
res= round(3.1415926)
print(res) #3
17.sorted()排序
l1= [23,56,34,5,6,7,4,33,7,78,90]
res = sorted(l1)
print(res) #[4, 5, 6, 7, 7, 23, 33, 34, 56, 78, 90]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!