python中常用的内置函数,可迭代对象,迭代器对象

知识点1 :常用内置函数

在这里插入图片描述

1 常用内置函数的实际应用

1.1 abs() 返回值是一个绝对值,参数可以是整数和浮点数,如果参数是一个复数,则返回它的模。

print(abs(-12.3))  # 12.3
print(abs(10))  # 10

1.2 all() 如果interable中的所有元素结果都为真(或iterable为空),则返回:True

list0 = []
list1 = [1, 2, 3, 4, 5, 6]
list2 = [0, 2, 4]
print(all(list0))  # True
print(all(list1))  # True
print(all(list2))  # False

1.3 any() 如果iterable中只要有一个元素为真,则返回:True

list0 = []
list1 = [1, 2, 3, 4, 5, 6]
list2 = [0, 2, 4]
print(any(list0))  # False
print(any(list1))  # True
print(any(list2))  # True

1.4 bin() 十进制转二进制

print(bin(100))  # 0b1100100

1.5 bool() 布尔值转换

print(bool(1))  # True
print(bool(0))  # False

1.6 bytes() 字符串的编码和解码

res = bytes('我们的', 'utf8')
print(res)  # b'\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84'
res1 = str(res, 'utf8')
print(res1)  # 我们的

1.7 callable 判断是否是可调用的对象

name = 'jason'
def index():
    pass
print(callable(name))  # False
print(callable(index))  # True

1.8 int() 其它进制数转十进制数

print(int(0b1100100))  # 100

1.9 dir() 获取对象内部可以通过句点符获取的数据

print(dir(int))
print(dir(str))
print(dir(list))

1.10 divmod() 获取除法之后的整数和余数

print(divmod(101, 10))  # (10, 1)
real_num, more = divmod(898, 10)

1.11 enumerate() 枚举

l1 = ['zhang', 'wang', 'liu', 'li']
for i, j in enumerate(l1, 100):  # 100是起始值
    print(i, j)
# 100 zhang
# 101 wang
# 102 liu
# 103 li

1.12 eval() 能够识别字符串中简单的python代码并执行 exec() # 能够识别字符串中复杂的python代码并执行

s1 = "print('哈哈哈')"
eval(s1)
s2 = "for i in range(10):print(i)"
exec(s2)

1.13 chr() 数字>>>字符 ord() 字符>>>数字

print(chr(65))  # A
print(ord('A'))  # 65

1.14 hash() 返回一串随机的数字(哈希值)

print(hash('zhang'))  # 1924788847951874661

1.15 help() 查看帮助信息

help(len)

1.16 isinstance() 判断某个数据是否属于某种数据类型

print(isinstance(123, int))  # True
print(isinstance([], list))  # True

1.17 pow() 幂指数

print(pow(3, 3))  # 27

1.18 round() 四舍五入

print(round(19.4))  # 19
print(round(19.5))  # 19
print(round(19.6))  # 19

知识点2:可迭代对象

2.1迭代是什么?
  • 迭代就是更新换代,每次迭代都是基于上一次的成果
2.2如何判断可迭代对象?
  • 内置有__iter__方法的都叫做可迭代对象
2.3常见的可迭代对象都有哪些?
  • list,tuple,dict,str,set,文件(支持for循环)
  • 不可迭代对象:int,float,bool,函数名

知识点3 :迭代器对象

3.1迭代器对象的特点
  • 1> 给我们提供了一种不依赖索引取值的方式
  • 2> 正是迭代器对象的存在,字典,集合这种无序类型才实现了循环取值
3.2判断迭代器对象的标准
  • 1>内置有__iter__和__next__的对象都称为迭代器对象
3.3可迭代对象和迭代器对象之间的关系
  • 1> 可迭代对象调用__iter__方法之后就变成了迭代器对象
  • 2> 迭代器对象调用__iter__方法之后还是一个迭代器对象,也就是它本身
3.4迭代取值
res = 'zhang'.__iter__()

print(res.__next__())  # z
print(res.__next__())  # h
print(res.__next__())  # a
print(res.__next__())  # n
print(res.__next__())  # g


res = {'name': 'zhang', 'age': 18}.__iter__()
print(res.__next__())  # name
print(res.__next__())  # age


dic = {'name': 'zhang', 'age': 18}
print(dic.__iter__().__next__())  # name
print(dic.__iter__().__next__())  # name
# 注意:上面每次都产生了新的迭代器对象
3.5 简写形式
  • iter() next()
list1 = [1, 2, 3]
res = list1.__iter__()
iter(list1)

res.__next__()
next(res)
3.6 迭代器对象特殊的地方
  • 1> 可迭代对象和迭代器对象通过打印,无法直接看出内部数据的情况
  • 2> 特点:节省内存空间

知识点4:for循环的本质

# 1语法结构
#	for 变量名 in 可迭代对象:
#        for循环体代码
# 1.for会自动将in后面的数据调用__iter__()变成迭代器对象
# 2.之后每次循环调用__next__()取值
# 3.最后没有值__next__()会报错 for能够自动处理该错误 让循环正常结束

知识点5:异常捕获

l1 = [1, 2, 3, 4, 5, 6, 7,8, 9, 10]
res = l1.__iter__()
account = 0
try:
    while True:
        print(res.__next__())
except StopIteration:
    print('停下啦')
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值