python学习Day20
2022/7/12 14:21:50
本文主要是介绍python学习Day20,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Day 20
今日内容概要
- 常见内置函数
- 可迭代对象
- 迭代器对象
- for循环内部原理
- 异常捕获
- 生成器对象
今日内容详细
1.常见内置函数
内置函数:提前定义好可以直接使用的函数
1.abs() #求绝对值 print(abs(-99))#99 2.all()与any() #判断容器类型中所有数据值对应的布尔值是否为True 2.1.all()只有所有数据值都是True结果才会True print(all([1,2,3]))#True print(all([1,2,3,0]))#False 2.2any()只要有一个数据值为True结果才是True print(any([1,2,3]))#True print(any([0,0,0]))#False 3.bin() oct() hex() #十进制转其他进制 print(bin(10))#0b1010 十>>二 print(oct(10))#0o12 十>>八 print(hex(10))#0xa 十>>十六 4.int()#类型转换 其他进制转十进制 print(int(0b1010)) print(int(0o12)) print(int(0xa)) 5.bytes()#类型转换类似于编码(encode)解码(decode) 编码: res=bytes('张三','utf8') print(res)#b'\xe5\xbc\xa0\xe4\xb8\x89' 解码: res1=str(res,'utf8') print(res1)#张三 6.callable()#判断某个变量是否可以加括号调用 'call在IT中翻译为调用 调用就是加个()' name='jason' def index(): print('from index') print(callable(name))#False 该变量名不能加括号调用 print(callable(index))#True 该变量名可以加括号调用 7.chr() ord() #依据ASCII码表实现字符与数字的转换 print(chr(65))#A print(ord('A'))#65 8.dir()#获取对象内部可以通过句点符获取的数据 print(dir(str)) 9.divmod()#获取除完之后的整数与小数部分 eg:一个网页我有898个数据,每页展示10个,需要展示多少页 num,more=divmod(898,10) if more:#如果整除不了说明有余数 num+=1#则让num自增1 print('总页数:%s'%num)#总页数:900 *重点* 10.enumerate()#枚举 eg:要求循环打印处数据值 并有相应的索引值 list=['jason','kevin','cat'] for i,j in enumerate(list,1):#把i后面循环出来的数据一个一个交给变量j。从1开始(默认不写就是从0开始) print(i,j)#1 jason 2 kevin 3 cat 11.eval() exec()#能够识别字符串中python代码并执行 eg: res='print(123)' print(res)#print(123) eval(res)#123 相当于把引号拿掉 'eval和exec用法相同 区别就是第一个只能识别简单结构,后面的可以识别复杂结构' 12.hash()#返回一串随机的数字(哈希值)#需字符串型式 print(hash('张三')) print(hash('123')) 13.help()#查看帮助信息 help(len)#会返回len的注释、介绍、使用方式。(帮助手册) *重点* 14.isinstance()#判断某个数据是否属于某个数据类型 print(isinstance(123,int))#True print(isinstance(123,str))#False 15.pow()#幂指数 print(pow(2,3))#8 求2的8次方 16.round()#四舍五入(不太准) print(round(98.3))#98
2.可迭代对象
1.什么是迭代? 迭代就是更新换代,每次迭代都需要基于上一次 eg:软件版本更新 2.代码演示 不属于迭代: while True: print('嘿嘿嘿') 属于迭代:#因为每次打印n都是基于上一次的n+1得来的结果 n = 0 while n < 10: print(n) n += 1 3.如何判断可迭代对象 ''' 内置有__iter__方法的都叫可迭代对象 1.什么是内置? 通过句点符能直接点出来的东西就叫内置 2.__xxx__ 针对双下划线开头双下划线结尾的方式统一读作双下xxx ''' # int # 整型不是可迭代对象 # float # 浮点型不是可迭代对象 # bool # 布尔值不是可迭代对象 # 函数名 # 函数名不是可迭代对象 # str # 字符串是可迭代对象 # list # 列表是可迭代对象 # dict # 字典是可迭代对象 # tuple # 元组是可迭代对象 # set # 集合是可迭代对象 # f #文件对象是可迭代对象 可迭代对象: 字符串、列表、字典、元组、集合、文件对象(本身就是可迭代对象) 不是迭代对象: 整型、浮点型、布尔值、函数名 '可迭代对象能支持for循环取值'
3.迭代器对象
''' 作用: 迭代器对象给我们提供了一种不依赖于索引取值的方式,有了迭代器对象我们才能对字典、集合这些无序类型循环取值 ''' 1.如何判断迭代器对象: 内置有__iter__和__next__的对象都称之为迭代器对象 2.可迭代对象与迭代器对象的关系: 可迭代对象调用__iter__方法后就会变成迭代器对象 迭代器对象调用__iter__方法无论多少次还是迭代器对象本身 3.迭代器对象迭代取值: res = 'cat'.__iter__() # res已经是迭代器对象 print(res.__next__()) # c print(res.__next__()) # a print(res.__next__()) # t print(res.__next__()) # 没有了直接报错 dict={'name':'张三','pwd':123}.__iter__() print(dict.__next__())#name print(dict.__next__())#pwd print(dict.__next__())#没有了报错 eg:不使用for循环 依次打印出列表所有值 l1=[1,2,3,4,5] #1.将列表变成迭代器对象 res=l1.__iter__() #2.定义一个计数器 count=0 #3.编写while循环 while count<len(l1): #4.循环取值 print(res.__next__()) count+=1 4.补充说明 4.1.迭代器的反复使用 l1=[1,2,3] print(l1.__iter__().__next__())#1 print(l1.__iter__().__next__())#1 print(l1.__iter__().__next__())#1 #每次使用都是产生了新的迭代器对象 l2=[1,2,3] res=l2.__iter__() print(res.__iter__().__next__())#1 print(res.__next__())#2 print(res.__next__())#3 #每次使用都是用一个迭代器对象 4.2.针对双下方法#不建议 没有标识度 l=[1,2,3] res=l.__iter__() 可以简写为 iter(l) res.__next__() 可以简写为 next(res) 4.3.迭代器对象特殊的地方 print(range(4))#range(0,4) (python2是直接全打印出来) res=range(4).__iter__()#range是一个可迭代对象 只有赋值接收后才可以变成迭代器对象 print(res.__next__())#0 print(res.__next__())#1 print(res.__next__())#2 print(res.__next__())#3 可迭代对象、迭代器对象 通过打印操作无法直接看出内部数据的情况,这是在帮助我们节省内存,相当于工厂,要一个数据就给我们造一个出来
4.for循环内部原理
语法结构 for 变量名 in 可迭代对象: for循环体代码 1.for会自动将in后面的数据调用__iter__()变成可迭代器对象 2.之后每次循环调用__next__()取值 3.最后没有值时__next__()会报错,for能自动处理错误让循环正常结束
这篇关于python学习Day20的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python