python菜鸟教程(Python异步编程全攻略)

:暂无数据 2026-08-15 21:00:09 :0

python菜鸟教程(Python异步编程全攻略)

大家好,今天小编来为大家解答以下的问题,关于python菜鸟教程,Python异步编程全攻略这个很多人还不知道,现在让我们一起来看看吧!

本文目录

Python异步编程全攻略

如果你厌倦了多线程,不妨试试python的异步编程,再引入async, await关键字之后语法变得更加简洁和直观,又经过几年的生态发展,现在是一个很不错的并发模型。

下面介绍一下python异步编程的方方面面。

因为GIL的存在,所以Python的多线程在CPU密集的任务下显得无力,但是对于IO密集的任务,多线程还是足以发挥多线程的优势的,而异步也是为了应对IO密集的任务,所以两者是一个可以相互替代的方案,因为设计的不同,理论上异步要比多线程快,因为异步的花销更少, 因为不需要额外系统申请额外的内存,而线程的创建跟系统有关,需要分配一定量的内存,一般是几兆,比如linux默认是8MB。

虽然异步很好,比如可以使用更少的内存,比如更好地控制并发(也许你并不这么认为:))。但是由于async/await 语法的存在导致与之前的语法有些割裂,所以需要适配,需要付出额外的努力,再者就是生态远远没有同步编程强大,比如很多库还不支持异步,所以你需要一些额外的适配。

为了不给其他网站带来困扰,这里首先在自己电脑启动web服务用于测试,代码很简单。

本文所有依赖如下:

所有依赖可通过代码仓库的requirements.txt一次性安装。

首先看一个错误的例子

输出如下:

发现花费了3秒,不符合预期呀。。。。这是因为虽然用了协程,但是每个协程是串行的运行,也就是说后一个等前一个完成之后才开始,那么这样的异步代码并没有并发,所以我们需要让这些协程并行起来

为了让代码变动的不是太多,所以这里用了一个笨办法来等待所有任务完成, 之所以在main函数中等待是为了不让ClientSession关闭, 如果你移除了main函数中的等待代码会发现报告异常 RuntimeError: Session is closed ,而代码里的解决方案非常的不优雅,需要手动的等待,为了解决这个问题,我们再次改进代码。

这里解决的方式是通过 asyncio.wait 方法等待一个协程列表,默认是等待所有协程结束后返回,会返回一个完成(done)列表,以及一个待办(pending)列表。

如果我们不想要协程对象而是结果,那么我们可以使用 asyncio.gather

结果输出如下:

通过 asyncio.ensure_future 我们就能创建一个协程,跟调用一个函数差别不大,为了等待所有任务完成之后退出,我们需要使用 asyncio.wait 等方法来等待,如果只想要协程输出的结果,我们可以使用 asyncio.gather 来获取结果。

虽然前面能够随心所欲的创建协程,但是就像多线程一样,我们也需要处理协程之间的同步问题,为了保持语法及使用情况的一致,多线程中用到的同步功能,asyncio中基本也能找到, 并且用法基本一致,不一致的地方主要是需要用异步的关键字,比如 async with/ awa

Python热力图绘制方法—新手教程

# Python热力图绘制方法

热力图的使用场景有 

1.描述数据在空间的密集程度,常见有城市热力图,区域热力图

2.描述多个变量之间相关性高低程度

# step 1 准备数据集,读取excel列表内容,usecols = index, 这里是表里的第一列不读取。

index =range(1, 11)

dataset = np.array(pd.read_csv(r’C:\Users\Administrator\Desktop\heatmap.csv’, usecols=index))

# step 2  读取excel行索引转成列表,作为热力图的y轴标签

a = (pd.read_csv(r’C:\Users\Administrator\Desktop\heatmap.csv’, usecols=))

y_label =list(a.stack())

# step 3 读取excel列索引转成列表,作为热力图的x轴标签

b = (pd.read_csv(r’C:\Users\Administrator\Desktop\heatmap.csv’))

column_index=(b.columns.tolist())

x_label = column_index

# 这一步是为了计算热力图的数据的最大值,可以进行标准化处理,也可以直接显示数据,dataframe转成list,从list里面寻找最大值

dataset_max = (pd.read_csv(r’C:\Users\Administrator\Desktop\heatmap.csv’, usecols=index))

list1 = np.array(dataset_max.stack())

max_number =max(list1)

# step 4 开始绘制热力图

plt.figure(figsize=(14, 8))# 定义输出图像大小,annot参数决定是否在热力图上显示数值,Vmax,Vmin表示最大最小值,cmap表示颜色

sns.heatmap(dataset, fmt=’.0f’, annot=True, vmin=0, vmax=max_number, cmap=’Reds’, yticklabels=y_label,

            xticklabels=x_label)

# 绘制标签

plt.xlabel(’This is x label’, labelpad=15)

plt.ylabel(’This is y label’, labelpad=20)

plt.show()

新手怎么学习python

    请点击输入图片描述

python新手应该怎么学习更好

Python是一中面向对象的编程语言,语法简洁而清晰,具有丰富和强大的类库。对于初学编程者来说,首选Python是个非常棒的选择。

1、零基础学编程,用python入门是个不错的选择,虽然国内基本上还是以c语言作为入门开发语言,但在国外,已经有比较多的学校使用python作为入门编程语言。

— python2x、python3x直接可以去python官网下载

— pycharm:python世界最好的一款IDE(建议装上)

— ipython:一款python解释器,比原装的好用

2、找到合适的入门书籍仔细阅读有关Python的书籍,好记心不如烂不同,一定要做笔记,过后回顾笔记。书上给出的练习,一定要做,并且争取全部弄懂。书上有的练习代码,一定要自己调试一遍,知其所以然。【看书练习】

个人建议:简明Python教程这本书可以入手本书写得和Python一样,简洁优美,没废话。

笨办法学 Python(第四版)也不错

3、加入Python讨论群,推荐个不错的qun-  227-435-450态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,就可以使你绕很多弯路。

每天的编码必不可少,既然选择学习编程,学习Python,坚持编码应该是必须做到的。没有代码积累,要写出高质量的代码,几乎不可能。

4、要善于总结。如果你光学不练,这是不好的,如果你不善于总结,这也是不好的。语言都是用不上的时候开始学习。都是用的上的时候开始复习。要是用得上的时候开始学习,除非你抗压能力一流,不然我想你心情烦躁,效果会很不好的。学习的时候多总结一下,复习的时候可以翻出来看看,这样就不至于完全荒废了,并且恢复相当快速。

学习编程不要太排斥英文。如果让你直接从英文开始学习,我想这个很难,但是如果用英文版本开始复习,这个就很好了。

5、保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。

俗话说的好:兴趣是最好的老师

6、在写过不少基础代码之后,可以去各大Python相关的网站阅读别人的代码,多阅读别人的也是提高自己的编码水平的很好途径,同时,有把自己的代码分享给别人阅读,一边互相交流促进。

教别人的时候,其实你已经自己再次思考一次了。

最后祝你学有所成,希望对你有所帮助。

如果你还想了解更多这方面的信息,记得收藏关注本站。

python菜鸟教程(Python异步编程全攻略)

本文编辑:admin

更多文章:


案例分析题及答案(一级建造师《管理与实务》案例分析及答案)

案例分析题及答案(一级建造师《管理与实务》案例分析及答案)

本篇文章给大家谈谈案例分析题及答案,以及一级建造师《管理与实务》案例分析及答案对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 07:40

app制作和网站制作的区别(网站制作的APP和原生APP到底哪个好)

app制作和网站制作的区别(网站制作的APP和原生APP到底哪个好)

大家好,今天小编来为大家解答以下的问题,关于app制作和网站制作的区别,网站制作的APP和原生APP到底哪个好这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 07:00

MySQL服务器官网中Installer与Community Server有什么区别?cloudinnovation服务器到哪里买

MySQL服务器官网中Installer与Community Server有什么区别?cloudinnovation服务器到哪里买

“服务器官网”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看MySQL服务器官网中Installer与Community Server有什么区别?cloudinnovation服务器到哪里买!

2026年10月11日 06:20

重庆人社app下载(重庆邮政社保卡怎么切换到重庆人社卡)

重庆人社app下载(重庆邮政社保卡怎么切换到重庆人社卡)

本篇文章给大家谈谈重庆人社app下载,以及重庆邮政社保卡怎么切换到重庆人社卡对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 06:00

在百度首页的名站导航里怎么找不到天天基金?WIN7桌面上多了个淘宝热卖 名站导航这个毒怎么杀谢谢

在百度首页的名站导航里怎么找不到天天基金?WIN7桌面上多了个淘宝热卖 名站导航这个毒怎么杀谢谢

各位老铁们好,相信很多人对名站导航都不是特别的了解,因此呢,今天就来为大家分享下关于名站导航以及在百度首页的名站导航里怎么找不到天天基金的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月11日 05:20

品牌建设和品牌打造方法(品牌建立的方式有哪些)

品牌建设和品牌打造方法(品牌建立的方式有哪些)

今天给各位分享品牌建立的方式有哪些的知识,其中也会对品牌建立的方式有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 00:00

大同网络公司(大同有线电视网络有限公司怎么样)

大同网络公司(大同有线电视网络有限公司怎么样)

大家好,关于大同网络公司很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于大同有线电视网络有限公司怎么样的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月10日 19:10

毕业设计网站怎么做(毕业设计要做PHP的旅游网站,怎么下手啊T)

毕业设计网站怎么做(毕业设计要做PHP的旅游网站,怎么下手啊T)

其实毕业设计网站怎么做的问题并不复杂,但是又很多的朋友都不太了解毕业设计要做PHP的旅游网站,怎么下手啊T,因此呢,今天小编就来为大家分享毕业设计网站怎么做的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月10日 18:10

房产过户给子女最好方法(父母房子过户给子女最好方式)

房产过户给子女最好方法(父母房子过户给子女最好方式)

本篇文章给大家谈谈房产过户给子女最好方法,以及父母房子过户给子女最好方式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月10日 17:30

惠管家云平台采购进货怎么不能删除记录?政采云平台采购人收货是什么意思啊

惠管家云平台采购进货怎么不能删除记录?政采云平台采购人收货是什么意思啊

其实云平台采购的问题并不复杂,但是又很多的朋友都不太了解惠管家云平台采购进货怎么不能删除记录,因此呢,今天小编就来为大家分享云平台采购的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月10日 17:10

最近更新

thinkpade470c加内存条(thinkpad e470c内存条是什么牌子如果要添加4g内存什么牌子比较好)
2026-10-11 09:00:03 浏览:0
frontpage的主要功能(frontpage是什么)
2026-10-11 08:40:18 浏览:0
ideapad15alc7能玩什么游戏(联想ideapad15可以玩刺客信条启示录吗)
2026-10-11 08:10:05 浏览:0
me是国内域名吗(me域名的概况)
2026-10-11 07:50:35 浏览:0
热门文章

打印机m7400(m7400打印机清零方法)
2026-08-29 07:50:01 浏览:5
acrobat各版本区别(Acrobat XI Pro与 Acrobat PRO DC什么区别)
2026-08-29 22:30:20 浏览:2
联想y510p怎么升级(联想y510p换cpu)
2026-08-17 03:30:04 浏览:2
标签列表