python-生成器对象-常见内置函数

技术python-生成器对象-常见内置函数 python-生成器对象-常见内置函数目录异常捕获(二)for循环本质迭代取值与索引取值对比生成器对象自定义range功能yield传值yeild与retur

Python-生成器对象-常见的内置函数

目录异常捕获(二)循环性质生成器对象的迭代值和索引值之间的比较自定义范围函数YieldPass值yield和返回比较生成器表达式公共内置函数

异常捕获(二)

尝试:

名字

e:除外

打印(“代码错误”)

else:

打印(代码正常后才会执行)

最后:

打印(代码无论是否异常都会运行)

#断言

名字='杰森'

assert isinstance(名称,字符串)

#主动抛出异常

引发零整除错误(“除数不能为0”)

for循环本质

d={ '姓名' : '杰森','年龄' : 18}

RES=d . _ _ ITER _ _()# stop iteration的异常,这是循环对象耗尽所有元素时出现的错误。

#同时实现循环打印

而True:

尝试:

打印(下一个__())

除了停止迭代为e:

破裂

#用于循环打印

因为我在d:

打印(一)

迭代取值与索引取值对比

迭代值

不要依赖索引来获取值。

值的顺序是从左到右固定的,不能重复获取。

给定值

值可以重复。

需要有序的容器类型来获取值(这不是一种常见的方式)

生成器对象

生成器实际上是一个自定义迭代器。

#定义阶段是一个普通的函数。

def my_generator():

打印(“第一次”)

产量11

打印('秒')

产量22

'''

当函数体包含yield关键字时,那么当第一次调用函数时

函数变成了生成器(迭代器),而不是执行函数体代码。

'''

Res=my_generator() #调用函数不会执行函数体代码,而是将函数变成一个生成器(迭代器)。

在0x7fcc5f7d3888打印(res) #生成器对象my_generator

Ret=res.__next__() #运行每__next__个代码,直到yield停止返回以下数据。

打印(ret) #第一\n 11页

Ret=res.__next__() #再次执行__next__,然后在上次停止的地方继续,然后在达到产量时停止。

打印(ret) #秒\n 22

自定义range功能

def my_range(开始,停止=无,步骤=1):

如果没有停止:

停止,开始=开始,0

同时开始停止:

屈服开始

开始=步骤

对于我的范围(2,10,2):中的I

打印(一)

yield传值

def generator_func1(年龄):

打印('年龄为%s ' % age ')

而True:

名称=产量

打印(' %s NB' %名称)

Res=generator_func1(18) #不会执行函数体代码,但会将其转换为生成器。

下一次会议

Res.send('json') #传递一个要让出的值。

Res.send('xxx') #再次传递要屈服的值。

yeild与return对比

同一点:可以返回值,支持多个,并组织成元组。

不同点:

屈服:

1.当函数体代码满足yield时,它不会结束,而是“停止”

2.yield可以将函数转化为生成器,并支持外部价值转移。

返回:

1.函数体代码在遇到return时直接结束。

生成器表达式

#列表生成公式

l1=[11,22,33,44,55,66

]
res = [i + 1 for i in l1 if i != 44]
print(res) # [12, 23, 34, 56, 67]
# 生成器表达式
'''生成器表达式内部的代码只有在迭代取值的时候才会执行'''
res1 = (i + 1 for i in l1 if i != 44)
print(res1) # generator object genexpr at 0x7fbbb7e96ca8
print(res1.__next__()) # 12
print(res1.__next__()) # 23
print(res1.__next__()) # 24

  • 笔试题

    # 求和
    def add(n, i):
        return n + i
    # 调用之前是函数 调用之后是生成器
    def test():
        for i in range(4):
            yield i
    g = test()  # 初始化生成器对象
    for n in [1, 10]:
        g = (add(n, i) for i in g)
        """
        第一次for循环
            g = (add(n, i) for i in g)
        第二次for循环
            g = (add(10, i) for i in (add(10, i) for i in g))
        """
    res = list(g)
    print(res)
    #A. res=[10,11,12,13]
    #B. res=[11,12,13,14]
    C. res=[20,21,22,23]
    #D. res=[21,22,23,24]
    

常见内置函数

1. abs()  # 取绝对值
   print(abs(-10))  # 10
  
2. all()  any()
   l = [11, 22, 0]
   print(all(l))  # 所有元素为True才是True
   print(any(l))  # 所有元素有一个为True就是True
  
3. bin()  oct()  hex() 
   print(bin(12))  # 0b1100  二进制
   print(oct(12))  # 0o14  八进制
   print(hex(12))  # 0xc  十六进制
  
4. bytes()  str()
   res = '测试'
   ret1 = bytes(res, 'utf8')
   print(ret1)  # b'\xe6\xb5\x8b\xe8\xaf\x95'
   ret2 = str(ret1, 'utf8')
   print(ret2)  # 测试
  
5. callable()  # 是否看调用(看是否能加括号运行)
   i = 1
	 def f():
       pass
   print(callable(i), callable(f))  # Flse True
  
6. chr()  ord()
   print(chr(65))  # A  按照ASICC码表的数字打印字符
   print(ord('A'))  # 65  按照ASICC码表的字符打印数字
    
7. complex()  复数
   print(complex(123))  # (123+0j)
  
8. dir()  # 查看当前对象可以调用的名字
   def f():
       pass
   print(dir(f))
  
9. divmode()  # 接收两个数字类型参数,返回一个包含商和余数的元组(a // b, a % b)
   print(divmode(101, 10))  # (10 1)
   应用:
      # 生成页数
      num, more = divmod(201, 10)
      if more:
          num += 1
      print('总共需要%s页' % num)
      
10. eval()  exec()  # 将字符串内的内容加载执行
    s1 = "print('hello')"
    s2 = '''
    for i in range(10):
        print(i)
    '''
    eval(s1)  # 只能执行简单的内容
    exec(s2)  # 可以执行复杂的内容
    
11. isinstance()  # 判断是否属于某个数据类型
    i = 1
		print(isinstance(i, int))  # True
    
12. pow() 
		print(pow(4, 3))  # 64  4**3
  
13. round()
		print(round(4.5))  # 4
		print(round(4.6))  # 5
 
14. sum()  # 求和
    l = [11, 22, 33, 44]
    print(sum(l))  # 110 将列表 l 中的元素求和

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/112512.html

(0)

相关推荐

  • 只一行Python代码能实现哪些功能

    技术只一行Python代码能实现哪些功能本篇内容主要讲解“只一行Python代码能实现哪些功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“只一行Python代码能实现哪些功

    攻略 2021年11月20日
  • 五行属土的字,求所有五行属“土”的汉字

    技术五行属土的字,求所有五行属“土”的汉字土部 土 二至三画 玍 去 圣 圩 圬 圭 寺 在 至 尘 圪 老 考 圳 圾 圹 圮 圯 地 场 四画 坛 坏 坜 址 坚 坝 坐 坌 坋 圻 坂 均 坍 坎 坞 坟 坊 坑

    生活 2021年10月23日
  • 如何解决Sqlserver表统计信息丢失问题

    技术如何解决Sqlserver表统计信息丢失问题本篇文章为大家展示了如何解决Sqlserver表统计信息丢失问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。从链接服务器查询远程

    攻略 2021年11月29日
  • Hibernate查询语句有哪些

    技术Hibernate查询语句有哪些小编给大家分享一下Hibernate查询语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. se

    攻略 2021年12月8日
  • spark调优汇总(spark调优最佳配置)

    技术如何理解spark调优中的高层通用调优如何理解spark调优中的高层通用调优,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一,并行度集群

    攻略 2021年12月17日
  • 十大名木手串,全球十大最名贵木材有哪些

    技术十大名木手串,全球十大最名贵木材有哪些感谢推荐十大名木手串!我个人是很喜欢盘玩木材的,尤其是小叶紫檀。最近迷上了桃木,因为桃木那独有的纹理是非常吸引我的。如下这些就是最世界珍贵的十种木材。一、乌木乌木(阴沉木)兼备木

    生活 2021年11月1日