🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ### 课前准确: * 在`Windows`系统里安装`python`,参考 [安装python](https://www.kancloud.cn/k12edu/k_12/785427#Windowspython_4) ***** ### 本节课参考书目 * `Teach Your Kids to Code.pdf` 第二章:用`python` 画画 ***** ### 课程内容 * 10min:如何用`python` 画一些有趣的几何图案 ***** 这里用到了一个叫`turtle`的工具。因为我们安装了`miniconda` ,所以不需要再另外安装这个工具。`turtle` 是乌龟的意思,这只乌龟带着一支笔,在屏幕上一边走一边画,我们先看第一个例子。 ![](https://box.kancloud.cn/cc9e41d740b0e8906c166570d50546ce_753x736.png) ***** 小乌龟是怎么走出这种效果的呢?我们把它走的路线拆开来看一下。 ![](https://box.kancloud.cn/58f30eb5992191213d9c6a5c6a6be140_494x124.png) 小乌龟从中间那个点开始走,向上走1步,然后左转,再走2步,再左转,再走3步,再左转,再走4步,大家发现了没有,小乌龟每次都要往一个方向多走一步,这样它就绕着中心点走,但离中心点越来越远。 ***** 我们再来看代码: ![](https://box.kancloud.cn/adcb9bb3129d75068407a7b1cfb886aa_736x163.png) `import turtle`:告诉`python`,帮我把`turtle`工具箱准备好。 `t=turtle.Pen()`,就是告诉小乌龟,准备画画吧。 从`for x in range(100):` 开始,就不是固定的了,根据我们想画的几何图形,可以写不同的代码。我们先不考虑画图的事情,我们先琢磨一下`for x in range(100):`语句到底表示什么呢? `for x in range(100):`,直接翻译成汉语就是,“对于在0~99之间(range是范围的意思)数字(用`x`表示),执行`:`之后的命令”。 例如,如果我们想打印100次`Hello World!`,我们这样写: ``` for x in range(100): print("Hello World!") ``` 然后会打印100次`Hello World!`。 ![](https://box.kancloud.cn/a7b6ff2d8c3c6a2508fae77b92ffd684_736x404.png) 我们还可以把`range(100)` 中的每个数字都打印出来: ``` for x in range(100): print(" This is %d" % x) # 这并不是唯一打印每个数字的方法,例如print("This is ",x)也可以 ``` ![](https://box.kancloud.cn/dad235a738685d968d2ec116eb728ae6_290x311.png) ***** 我们再回到小乌龟画画这件事情上,小乌龟一直在重复两个动作: * 向前走`x` 步,`x` 依次增加,0、1、2 ... 99 * 每走`x` 步,就向左转 我们把这两个动作用代码写出来就是: ``` t.forward(x) # forward就是向前走,走出少步呢?就是括号里的`x` 步 t.left(90) # left就是向左转的意思,括号里的90°,表示只能转这么多,刚好形成一个直角 ``` 如果我们把整段代码写出来,并执行,也会得到一样的效果: ![](https://box.kancloud.cn/ba4c17bf1f5517930a6ad4b48c6b7687_730x486.png) 如果我们在这段代码上再做一点小小的修改,就会发生神奇的变化,例如,让小乌龟每次转91°,得到这样的效果: ![](https://box.kancloud.cn/c1349fe03f5844e2e1fdad6679258e3b_730x628.png) 是不是变化很大呢? 这只是`turtle` 工具很简单的应用,如果想了解更复杂一些的,在`Python 3.6.5 Shell` 窗口,点击`Help` `Turtle Demo` ![](https://box.kancloud.cn/09294ac110743acff8262fd6cde450b3_488x237.png) 我们在`Examples` 里找一个例子,例如下面这个八卦图,还有很多更好玩的图片。 ![](https://box.kancloud.cn/5cc1b91d8f0ba6014c769bc54a85d90f_1524x831.png) ### 课程小结 * 导入工具箱,要使用`import` 这个命令 * `for x in range(100):` 是很重要的循环结构 ### 课程代码 A1 ``` for x in range(100): print("Hello World!") ``` A2 ``` for x in range(100): print(" This is %d" % x) print("This is also ",x) ``` A3 ``` import turtle t = turtle.Pen() for x in range(100): t.forward(x) t.left(90) ``` A4 ``` import turtle t = turtle.Pen() for x in range(100): t.forward(x) t.left(91) ```