生成器和常见内置函数

生成器

  生成器对象

    生成器其实就是一个自定义的迭代器。

    当函数内部含有yield关键字,那么在第一次调用函数的时候并不会执行函数代码,而是将函数转变为生成器。

 

 

 

 

 

  自定义range功能

    通过生成器可以模仿range方法写一个类似的函数。

 

 

  yield传值

    yield提供了参数和闭包之外的第三种传值方式。

    将yield返回的值付给变量名,在给他传值之前,不会往下运行。

 

 

 

  

  yield与return对比

     yield

      1.可以返回值(支持多个并且组织成元组)。

      2.函数体代码遇到yield不会结束而是"停住"。

      3.yield可以将函数变成生成器 并且还支持外界传值。

    return

      1.可以返回值(支持多个并且组织成元组)。

      2.函数体代码遇到return直接结束。

 

 

 

  生成器表达式

    生成器表达式的格式类似列表表达式,就是将中括号变为小括号。

 

 

 

  生成器表达式的应用

 

 

 

常见内置函数

  1.abs() 绝对值

    作用就是去绝对值。

      

print(abs(123)) #结果:123
print(abs(-123)) #结果:123

 

  2.all()和any()判断多个结果

    all()的作用是判断多个值,只有所有元素都为True结果才为True。

    any()的作用是判断多个值,只要有一个元素为True结果就为True。

    

l = [1, 2, 3, 4, 0]
print(all(l))  # 结果为False
print(any(l))  # 结果为True

 

  3.bin()、oct()和hex() 进制转换

    bin()的作用是转化成二进制。

    oct()的作用是转化成八进制。

    hex()的作用是转化成十六进制。

print(bin(111))  # 结果为0b1101111
print(oct(111))  # 结果为0o157
print(hex(111))  # 结果为0x6f

 

  4.bytes()和str()编码解码

    bytes()的作用是编码。

    str()不仅可以用于字符串类型转换,还可用于解码。

res = ''
res1 = bytes(res, 'utf8')
print(res1)  # 结果为b'\xe5\xa5\xbd'
res2 = str(res1, 'utf8')
print(res2)  # 结果为'好'

 

  5.callable()判断是否可调用

    callable()的作用是判断某个名字是否可调用。

s1 = 123
def index():
    print('123')
print(callable(s1))  # 结果为False
print(callable(index))  # 结果为True

 

  6.chr()和ord()ASCII码转换

    chr()的作用是根据数字找ASCII码对应的字符。

    chr()的作用是根据数字找ASCII码对应的字符。

print(chr(97))  # 结果为'a'
print(ord('a'))  # 结果为97

 

  7.complex() 复数

    complex()的作用是转化一个字符串或数为复数。

print(complex(123))  # 结果为(123+0j)

 

  8.dir()查看可调用

    dir()的作用是查看当前对象可查看的函数。

def index():
    pass
print(dir(index))  # 结果为['__annotations__', '__call__', ...]

 

  9.divmod()取余

    divmod()的作用是获取商和余数。

print(divmod(97, 8))  # 结果为(12, 1)

 

  10.eval()和exec() 识别语法

    eval()可以将字符串中的数据内容加载并执行,只能识别简单的语法。

    exec()可以将字符串中的数据内容加载并执行,可以识别较复杂的语法。

复制代码
res1 = """
for i in range(5):
    print(i)
"""
res2 = """
print('hello world')
"""
eval(res2)  # 结果为'hello world'
exec(res1)  # 结果为0,1,2,3,4
复制代码

 

  11.isinstance()判断数据类型

    isinstance()的作用是判断数据是否是某个类型。

print(isinstance(123, int))  # 结果为True

 

  12.pow()指数

    pow()的作用是计算一个数的指数。

print(pow(2, 3))  # 结果为8

 

  13.round()取整

    round()的作用是将一个小数转化为整数。

print(round(4.8))  # 结果为5

 

  14.sum()求和

    sum()的作用是将一组数据求和。

l1 = [11, 22, 33, 44, 55, 66]
print(sum(l1))  # 结果为231

 

 

posted @   临江沂水  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示