python实习总结(yeild,async,azwait和协程)

Python实习总结

本文将介绍在Python实习中所了解到的yield、async、await和协程的知识点以及如何使用它们。

yield和生成器

yield是一种特殊的关键字,它可以让函数暂停执行,并将函数的当前状态保持下来。yield常用于生成器中,生成器可以用来迭代一组数据,而不用事先生成整组数据,这样可以节省内存空间。以下是yield的示例代码:

def generator():
    for i in range(5):
        yield i

g = generator()
for i in g:
    print(i)

上述代码先定义了一个生成器函数generator(),在其中使用yield语句,然后定义一个生成器对象g,并用for循环来遍历这个生成器对象。最终输出的结果是0、1、2、3、4。

async和await

async和await是Python3.5版本之后添加的关键字,用于异步编程。async用于定义异步函数,而await则是等待异步函数执行完成。下面是使用async和await的示例代码:

import asyncio

async def coroutine():
    print('Hello')
    await asyncio.sleep(1)
    print('World')

loop = asyncio.get_event_loop()
loop.run_until_complete(coroutine())

上述代码定义了一个异步函数coroutine(),这个函数的执行过程被打断了,等待1秒钟后,再继续执行。在main函数中,首先获取了一个事件循环对象loop,然后使用loop.run_until_complete()方法来运行coroutine()函数。

asyncio和协程

asyncio是Python3.4版本之后添加的库,用于实现异步IO编程。在Python中,协程是一种轻量级的线程,可以实现在同一线程中并发执行多个任务,从而提高程序的效率。以下是使用asyncio和协程的示例代码:

import asyncio

async def factorize(number):
    for i in range(1, number+1):
        if number%i == 0:
            await asyncio.sleep(1)
            print('{} * {}'.format(i, number//i))
            await asyncio.sleep(1)

async def main():
    await asyncio.gather(factorize(100), factorize(200), factorize(300))

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

上述代码定义了一个协程函数factorize(),这个函数模拟对数字进行质因数分解的过程。在主函数main()中,使用asyncio.gather()方法来同时运行三个factorize()函数。最终的输出结果为:1 * 100、2 * 50、4 * 25、5 * 20、10 * 10、1 * 200、2 * 100、4 * 50、5 * 40、8 * 25、10 * 20、20 * 10、1 * 300、2 * 150、3 * 100、4 * 75、5 * 60、6 * 50、10 * 30、12 * 25、15 * 20、30 * 10。

以上就是对Python实习中所了解到的yield、async、await和协程的介绍和示例说明。希望对大家学习Python异步编程有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实习总结(yeild,async,azwait和协程) - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 正确的使用Python临时文件

    当我们编写Python程序时,有时候需要操作一些临时文件,比如说缓存文件,临时日志等等。为了避免这些文件在程序退出时占用空间,我们需要正确的使用Python临时文件。下面就是正确的使用Python临时文件的完整攻略: 1.借助tempfile库创建临时文件 tempfile库是Python内置库,主要用来处理文件系统上的文件和目录的命名问题,提供了创建临时文…

    python 2023年6月2日
    00
  • python实现批量修改文件名代码

    下面是关于“python实现批量修改文件名代码”的详细攻略: 1. 了解python的os模块 在使用python处理文件操作时,需要使用到python的os模块。os模块是Python标准库中提供的用于处理文件和目录的模块,他提供了丰富的文件系统相关操作方法,例如修改文件名、复制文件、删除文件、遍历文件、建立目录、删除目录、获取文件信息等。参考文档:os …

    python 2023年6月5日
    00
  • python读取excel数据绘制简单曲线图的完整步骤记录

    下面我来详细讲解“Python读取Excel数据绘制简单曲线图的完整步骤记录”的实例教程,包含以下步骤: 准备工作 确定使用的Python版本以及第三方库。本文以Python 3为例,使用Pandas、Matplotlib和Numpy库。 导入第三方库。可以使用 !pip install pandas matplotlib numpy 命令来安装这些库。 在…

    python 2023年5月13日
    00
  • python中常用的数据结构介绍

    Python中常用的数据结构介绍 Python是一门高级的编程语言,具有简单而强大的语法,被广泛用于数据科学、机器学习等领域。在Python中,常见的数据结构包括列表、元组、字典、集合等。本文将着重介绍这些数据结构的特点和用法。 列表 Python中的列表(List)是一种有序、可变的集合,可以包含任意类型的数据。它们被定义在方括号 [] 中,由逗号分隔的一…

    python 2023年5月13日
    00
  • 浅析Python是如何实现集合的

    浅析Python是如何实现集合的 在Python中,集合是一种无序、不重复的数据结构,它可以用于快速检查元素是否存在于集合中。本文将浅析Python是如何实现集的,括集合的定义、集合的操作和集合的实现原理。 集合的定义 在Python中,可以使用set()函数集合。面是一个示例: # 定义一个集合 my_set = set([1, 2, 3, 4,5]) #…

    python 2023年5月13日
    00
  • Python利用PyExecJS库执行JS函数的案例分析

    下面是详细讲解“Python利用PyExecJS库执行JS函数的案例分析”的完整攻略。 1. PyExecJS库简介 PyExecJS是一个运行不同JavaScript实现的Python库,它提供了一种简洁的方式,在Python中调用JavaScript代码。通过它,我们可以让Python调用JavaScript函数,从而实现更复杂的功能。PyExecJS通…

    python 2023年5月18日
    00
  • 基于Python实现经典植物大战僵尸游戏

    “基于Python实现经典植物大战僵尸游戏”的完整攻略 简介 植物大战僵尸是一款经典的塔防游戏,该游戏既考验玩家的策略思考,也考验玩家的反应速度。本攻略将会详细介绍如何基于Python实现经典植物大战僵尸游戏,并提供部分示例代码。 游戏规则 植物大战僵尸的游戏规则非常简单:1. 玩家需要布置各类攻击性的植物在游戏场景中,以防止僵尸侵入。2. 当僵尸到达游戏场…

    python 2023年6月2日
    00
  • python计算数字或者数组的阶乘的实现

    要计算数字或数组的阶乘,可以使用Python的标准库math中的函数来实现。另外,Python中也有其他的实现方式。 使用math库中的函数 使用math库提供的阶乘函数,允许计算大数字的阶乘。 import math # 计算5的阶乘 factorial = math.factorial(5) print(factorial) # 输出120 使用循环 另…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部