首页 > 其他分享 >内置函数与迭代对象

内置函数与迭代对象

时间:2022-10-14 19:47:18浏览次数:53  
标签:__ 11 内置 函数 迭代 对象 res print

今日内容总结

内置函数

重要内置函数

1.zip()
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,一般会用listuo输出为列表
利用 * 号操作符,可以将元组解压为列表
l1 = [11, 22, 33, 44, 55]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4, 5]
res = zip(l1, l2, l3)
print(list(res))  # [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3), (44, 'jerry', 4), (55, 'tony', 5)]
l1 = [11, 22, 33]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4]
res = zip(l1, l2, l3)
print(list(res))  # [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3)]
2.filter()
用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1)
print(list(res))  # [44, 55, 66, 77, 88]
3.sorted()
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res)  # [11, 12, 21, 22, 32, 53, 64, 76] 默认升序

常见内置函数

1.abs() 绝对值
返回数字绝对值或复数的模
abs(-2)  # 2
abs(5j + 4)  # 6.4031242374328485
2.all() 接受一个迭代器,如果迭代器(元组或列表)的所有元素都为真,那么返回True,否则返回False,元素除了是0、空、None、False外都算 True。注意:空元组、空列表返回值为True,这里要特别注意。
print(all([0, 1, 2, 3]))  # False
print(all([1, 2, 3, True]))  # True
3.any()接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。
print(any([0, None, '', 1]))  # True
print(any([0, None, '']))  # False
4.bin()
将十进制转换为二进制
oct()
将给的参数转换成八进制
hex()
用于将10进制整数转换成16进制
int()
int(x, base =10)
x -- 字符串或数字。
base -- 进制数,默认十进制。
5.bytes()
将一个字符串转换成字节类型
s1 = '今天周五'
print(s1.encode('utf8'))  # b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94'
print(bytes(s1, 'utf8'))  # b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94'
6.callable()
用于检查一个对象是否是可调用的
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()
可以查看括号内对象的属性和方法
9.divmod()
元组 第一个数据为整除数 第二个是余数
res = divmod(100, 2)
print(res)  # (50, 0)
res = divmod(100, 3)
print(res) # (33, 1)
"""
总数据     每页展示的数据     总页码
100         10              10
99          10              10
101         10              11
"""
print(divmod(99, 10))  # (9, 9)
page_num, more = divmod(9999, 20)
if more:
    page_num += 1
print('总页码为:', page_num)  # 总页码为: 500
10.enumerate()
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般结合for循环使用
语法:enumerate(sequence, [start=0])
参数:
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
11.eval() exec() 能够识别字符串中的python代码并执行
s1 = 'print("哈哈哈")'
eval(s1)
exec(s1)
s2 = 'for i in range(100):print(i)'
eval(s2)  # 报错 只能识别简单的python代码 具有逻辑性的都不行
exec(s2)  # 可以识别具有一定逻辑性的python代码
12.hash()  哈希加密
print(hash('jason'))  # -5110295089852496299
13.id() 
返回对象的内存地址
isinstance()
判断一个对象是否是一个已知的类型
15.pow()
幂指数(次方)
print(pow(2, 2))  # 4
print(pow(2, 3))  # 8
print(pow(2, 4))  # 16
16.round() 四舍五入
print(round(98.5))  # 98
print(round(98.6))  # 99
17.sum() 求和
print(sum([11, 22, 33, 44, 55, 66]))  # 231
18.staticmethod()
返回函数的静态方法,一般通过装饰器的形式使用,方便将外部函数集成到类体中
19.repr()
将对象转化为供解释器读取的形式,返回一个对象的 string 格式

可迭代对象

1.可迭代对象
	对象内置有__iter__方法的都称为可迭代对象
	"""
	1.内置方法  通过点的方式能够调用的方法
	2.__iter__  双下iter方法
	"""
2.可迭代对象的范围
	不是可迭代对象
    	int float bool 函数对象
	是可迭代对象
    	str list dict tuple set 文件对象
3.可迭代的含义
	"""
	迭代:更新换代(每次更新都必须依赖上一次的结果)
		eg:手机app更新
	"""
	可迭代在python中可以理解为是否支持for循环

迭代器对象

1.迭代器对象
	是由可迭代对象调用__iter__方法产生的
	迭代器对象判断的本质是看是否内置有__iter__和__next__
2.迭代器对象的作用
	提供了一种不依赖于索引取值的方式
	正因为有迭代器的存在 字典 集合才能够被for循环
3.迭代器对象实操
s1 = 'hello'  # 可迭代对象
res = s1.__iter__()  # 迭代器对象
print(res.__next__())  # 迭代取值 for循环的本质
一旦__next__取不到值 会直接报错
4.注意事项
	可迭代对象调用__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身

for循环的本质

for 变量名 in 可迭代对象:
    循环体代码
"""
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获并处理
"""

异常捕获/处理

1.异常
	异常就是代码运行报错 行业俗语叫bug
	代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中要尽可能避免
2.异常分类
	语法错误
		不允许出现 一旦出现立即改正
	逻辑错误
    	允许出现的 因为它一眼发现不了 代码运行之后才可能出现
3.异常结构
	错误位置
	错误类型
	错误详情

标签:__,11,内置,函数,迭代,对象,res,print
From: https://www.cnblogs.com/qian-yf/p/16792366.html

相关文章