常见内置函数,可迭代对象,for循环简介
-
常见内置函数
-
可迭代对象
-
迭代器对象
-
for循环简介
常见内置函数
1.1概念:内置函数就是pychanm自己定义好的,系统自带的函数
python内置函数图表
1.2一些常用的内置函数
1.abs() 求绝对值 2.all()和any() # 判断一个容器(列表,字典,元组,字符串等)类型中的所有数据所对应的布尔值是否为True all() 所有的数据值为True的情况下 结果为True any() 所有的数据值只要有一个为True的情况下 结果为True 3.bin() 10进制转换为2进制 oct() 10进制转换为8进制 hex() 10进制转换为16进制 4.int() 类型转换 其他进制转换为十进制 补充: 0b开头二进制 0o开头八进制 0x开头十六进制 5.bytes() 类型转换 # res = '现在有多苦 将来就有多轻松'.encode('utf8') # print(res) encode:通常解释为:编码,把unicode编码转化为相应的编码;例如encode('utf-8')就是将unicode转化为utf-8 # res1 = res.decode('utf8') # print(res1) decode:通常解释为:解码,把其他的编码转换成unicode编码;例如decode('gbk')就是将gbk转化成为unicode # res = bytes('现在有多苦 将来就有多轻松','utf8') # print(res)
bytes()效果同encode() # res1 = str(res,'utf8') # print(res1) str()效果同decode() 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 65~90 # print(chr(97)) # a 97~122 # print(ord('A')) # 65 # print(ord('a')) # 97 8.dir() # 获取对象内部可以通过句点符获取的数据 # print(dir(str)) 9.divmod() # 获取除法之后的整数和余数 实际用法: """ 手上有很多数据 每页展示10条 需要多少页 通过代码自动计算 总数据 每页展示 需要多少页 100 10 10 99 10 10 101 10 11 898 10 ??? """
real_num, more = divmod(999,10) if more: real_num += 1 print('总页数:%s' % real_num) #步骤:先执行divmod(999,10),然后解压赋值给real_num和more,如果more不是0则real_num加一页,最后打印所需要的页数。
10.enumerate() # 枚举(就是将元素一个个的列举出来) # name_list = ['jason', 'kevin', 'oscar', 'jerry'] #for i, j in enumerate(name_list, 100): # 默认是从0开始 可以自定义 # print(i, j) 11.eval() exec() # 能够识别字符串中python代码并执行 # res = 'print(123)' # eval(res) # 不识别复杂结构的代码 只能识别最简单的 # exec(res) # 能够识别复杂结构的代码 # res1 = "for i in range(10):print(i)" # eval(res1) # exec(res1) 12.hash() # 返回一串随机的数字(哈希值) # print(hash('jason')) # print(hash('123')) 13.help() # 查看帮助信息 # help(len) 14.isinstance() # 判断某个数据是否属于某个数据类型 # print(isinstance(123,int)) # True # print(isinstance(123,str)) # False 15.pow() # 幂指数 # print(pow(2, 3)) # 8 16.round() # 大致:四舍五入(不精确) 可以百度查询详细说明 # print(round(98.3)) # print(round(98.6))
可迭代对象
从标题理解,什么是迭代,什么事对象,什么是可迭代对象,同时什么又是迭代器?
2.1迭代
迭代:就是更新换代,每次迭代都基于上一次的成果
对象:万物皆可为对象
.代码演示
# 不属于迭代(因为在每一次执行后它没有更新)
while True:
print('嘿嘿嘿')
# 属于迭代(n在每一次执行后都在不断地更新)
n = 0
while n < 10:
print(n)
n += 1
2.2可迭代对象
如何判断可迭代对象
"""
内置有__iter__方法的都叫做可迭代对象
1.内置是什么意思 通过句点符直接能够点出来的东西都叫内置
2.__XXX__ 针对双下划线开头双下划线结尾的方法 统一读作双下XXX
"""
# int # 整型不是可迭代对象
# float # 浮点型不是可迭代对象
# str # 字符串是可迭代对象
# list # 列表是可迭代对象
# dict # 字典是可迭代对象
# tuple # 元组是可迭代对象
# set # 集合是可迭代对象
# bool # 布尔值不是可迭代对象
# def index(): # 函数名不是可迭代对象
# print()
# f = open(r'01 考题讲解.py','r',encoding='utf8') # 文件对象是可迭代对象
"""
可迭代对象
字符串 列表 字典 元组 集合 文件对象(本身就是迭代器对象)
不是可迭代对象
整型 浮点型 布尔值 函数名
可迭代对象能够支持for循环取值
"""
迭代器(Iterator):python中任意对象,只要拥有__next__方法,就是一个迭代器
迭代器对象
3.1迭代器对象
"""
作用:
迭代器对象给我们提供了一种不依赖于索引取值的方式
正是因为有迭代器对象的存在 我们才能对字典、集合这些无序类型循环取值
"""
3.1.1.如何判断迭代器对象
内置有__iter__和__next__的对象都称为迭代器对象
3.1.2.可迭代对象与迭代器对象的关系
可迭代对象调用__iter__方法之后就会变成迭代器对象
迭代器对象调用__iter__方法无论多少次还是迭代器对象本身
3.1.3.迭代器对象迭代取值
# res = 'jason'.__iter__() # res已经是迭代器对象
# print(res.__next__()) # j
# print(res.__next__()) # a
# print(res.__next__()) # s
# print(res.__next__()) # o
# print(res.__next__()) # n
# print(res.__next__()) # 没有了直接报错
# d1 = {'name':'jason','pwd':123}
# res = d1.__iter__()
# print(res.__next__())
# print(res.__next__())
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
# 需求:不使用for循环 依次打印出列表中所有的数据值
# 1.先将列表变成迭代器对象
res = l1.__iter__()
# 2.定义一个计数器
count = 0
# 3.编写while循环
while count < len(l1):
print(res.__next__())
count += 1
3.1.4.补充说明
.迭代器反复使用
l = [11, 22, 33, 44]
# print(l.__iter__().__next__()) # 11 每次都是产生了一个新的迭代器对象
# print(l.__iter__().__next__()) # 11
# print(l.__iter__().__next__()) # 11
# print(l.__iter__().__next__()) # 11
res = l.__iter__()
print(res.__iter__().__next__()) # 11 每次使用的都是一个迭代器对象
print(res.__iter__().__next__()) # 22
print(res.__iter__().__next__()) # 33
print(res.__iter__().__next__()) # 44
.针对双下方法
res = l.__iter__() # 可以简写iter(l)
res.__next__() # 可以简写next(res1)
.迭代器对象特殊的地方(******)
可迭代对象 迭代器对象 通过打印操作无法直接看出内部数据的情况
这个时候他们都能够帮你节省内存
相当于是一个工厂 你要一个数据就临时给你造一个
for循环简介
语法结构
for 变量名 in 可迭代对象:
for循环体代码
1.for会自动将in后面的数据调用__iter__()变成迭代器对象
2.之后每次循环调用__next__()取值
3.最后没有值__next__()会报错 for能够自动处理该错误 让循环正常结束
分类:
python基础入门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)