[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)
```