![人工智能基础教程:Python篇(青少版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/783/26846783/b_26846783.jpg)
上QQ阅读APP看书,第一时间看更新
3.4 趣味练习
本节的趣味练习引入一个Python中的绘图模块,它会创造一个画布并附有画笔,允许我们对画笔编程,先来看程序3.12。
程序3.12:
![](https://epubservercos.yuewen.com/EFD799/15289821505523106/epubprivate/OEBPS/Images/aa0414.jpg?sign=1738849811-NhkSc4kpvaZDKcZ8OP5mZDSEslDDnHkF-0-09447b1a2ddf355339761b2794049ba7)
输出,如图3.16所示:
![](https://epubservercos.yuewen.com/EFD799/15289821505523106/epubprivate/OEBPS/Images/aa0415.jpg?sign=1738849811-g5eLyOEBZf8UjRALZvOrqBS9oDzI2r8h-0-4c361ff355cb17642adb4d7a857b301b)
图3.16 程序3.12输出结果
点睛:
首先我们将模块turtle引入,它是这个画图程序用到的模块,接着我们将变量t定义为画笔,在for循环的迭代过程中不断地在画布中画圆,可以看到,在循环的迭代中使用circle()指定了在画布中画的是一个圆,同时传入参数100表示这个圆的半径为100个单位,left(60)表示将画图的起笔逆时针旋转60°,这个会影响到下次画图位置。
输出图3.16(a)是绘图的过程,图3.16(b)是最后完成时的图像。实际运行只会输出一个画图界面。
接下来我们再来看看趣味程序3.13,从程序的角度来说,相比于程序3.12它更为丰满。
程序3.13:
![](https://epubservercos.yuewen.com/EFD799/15289821505523106/epubprivate/OEBPS/Images/aa0416.jpg?sign=1738849811-twZxSoWH9B5T4AqV0HPKy5drvlrPMCKs-0-904542b76e75a02b74e9d0f8db70c617)
输出,如图3.17所示:
![](https://epubservercos.yuewen.com/EFD799/15289821505523106/epubprivate/OEBPS/Images/aa0417.jpg?sign=1738849811-YyWYwEaNytHBlrWZwjSVN90QkzKAISx7-0-8681d7ff27484c59cc5f3bc6fd75745c)
图3.17 程序3.13输出结果
点睛:
有了程序3.12的铺垫,理解程序3.13并不算难,在这里我们只对设置画笔部分简单分析一下。程序的第6行设置了画笔的粗细,第8行设置了在每次迭代中要向前画出的长度,第9行设置了下次画图时的偏转方向,在画图时可以根据需要更改它的值。
输出图3.17中只是截取了画笔在工作时某一瞬间的图像,它是一个动图。
趣味一刻:
如果将程序3.12第4行改为t.circle(−100),程序3.13第8行改为t.forward(−x*2)的话,对应的输出图像会有什么效果?