非常适合小白的 Asyncio 教程
所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。 Asyncio 是并发(concurrency)的一种方式。对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现。 Asyncio 并不能带来真正的并行(parallelism)。当然,因为 GIL(全局解释器锁)的存在,Py...
所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。 Asyncio 是并发(concurrency)的一种方式。对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现。 Asyncio 并不能带来真正的并行(parallelism)。当然,因为 GIL(全局解释器锁)的存在,Py...
Python简介 Python是由荷兰人吉多·范罗苏姆(Guido von Rossum,后面都称呼他为Guido)发明的一种编程语言。 Python的历史 1989年圣诞节:Guido开始写Python语言的编译器。 1991年2月:第一个Python解释器诞生,它是用C语言实现的,可以调用C语言的库函数。 1994年1月:Python 1.0正式发布。 2000年10月:Python 2.0发...
Python像是叮当猫的口袋,几乎什么都能做,适合外行小白们去摸索学习,能极大的增加对编程的兴趣。 有些工具用python来实现不一定是技术上的最优选择,但可能是最简洁、最面向大众的。 介绍几个不错的处理图像的案例,并附上代码,尽可能让大家能拿来就用。 1、生成手绘图片 现在很多软件可以将照片转换成手绘形式,python也可以实现,而且定制化更强,可批量转换。 这里用到pillow库,这是非常牛逼...
Python语言支持很多种运算符,我们先用一个表格为大家列出这些运算符,然后选择一些马上就会用到的运算符为大家进行讲解。 运算符 描述 [] [:] 下标,切片 ** 指数 ~ + - 按位取反, 正负号 * / % // 乘,除,模,整除 + - 加,减 >> << 右移,左移 & 按位与 ^ | 按位异或,按位或 <= < > >= 小于...
应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之...
应用场景 我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子,如果要实现每隔1秒中在屏幕上打印一次“hello, w...
通过上两节课的学习,大家对Python中的分支和循环结构已经有了感性的认识。分支和循环结构的重要性不言而喻,它是构造程序逻辑的基础,对于初学者来说也是相对困难的部分。大部分初学者在学习了分支和循环结构后都能理解它们的用途和用法,但是遇到实际问题的时候又无法下手;看懂别人的代码很容易,但是要自己写出同样的代码却又很难。如果你也有同样的问题和困惑,千万不要沮丧,这只是因为你才刚刚开始编程之旅,你的练习...
在讲解本节课的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解。 你可能已经想到了,这个问题其实等同于将8个苹果分成四组且每组至少一个苹果有多少种方案,因此该问题还可以进一步等价于在分隔8个苹果的7个空隙之间插入三个隔板将苹果分成四组有多少种方案,也就是从7个空隙选出3个空隙放入隔板的组合数,所以答案是C(7,3)=35。组合数的计算公式如下所示。 根据我们前面学习的知识,可以用...
前面两节课,我们介绍了函数和字符串。在讲解今天的内容之前,先来回答一个可能会让大家感到费解的问题:为什么字符串类型(str)可以通过调用方法的方式进行操作,而之前我们用到的数值类型(如int、float)却没有可以调用的方法。在Python中,数值类型是标量类型,也就是说这种类型的变量没有可以访问的内部结构;而字符串类型是一种结构化的、非标量类型,所以才会有一系列的方法可供调用。如果对这一点感到困...
在开始本节课的内容之前,我们先给大家一个编程任务,将一颗色子掷6000次,统计每个点数出现的次数。这个任务对大家来说应该是非常简单的,我们可以用1到6均匀分布的随机数来模拟掷色子,然后用6个变量分别记录每个点数出现的次数,相信大家都能写出下面的代码。 scores = [[0] * 3 for _ in range(5)] scores[0][0] = 95 print(scores) # ...
推广返利