python迭代器和常见内置函数

1.怎么理解迭代?

迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
通俗易懂的讲就是手机软件更新迭代,是基于原有的数据进行更新换代的

2.什么是可迭代对象?
内置有__iter__方法的对象可称为可迭代对象
支持for循环取值的、

可迭代对象的类型有:
strlist,dic,tupleset,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]
 
posted @   Hsummer  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示