小朋友们,欢迎回来~
昨天我们使用 Python 的 turtle 模块制作了一面红旗,不知五角星大家做的怎么样了?
今天,我们继续使用 turtle 绘制一幅小作品,这节课我们还会讲到程序设计中一个很常见的内容。
也许小同学们已经注意到了,我们这个系列的封面图片里都带有一条小蛇:
一条小蛇
又一条
这肯定不是巧合啦,原因很简单,Python 这个词,在英语中就是蛇的意思,但不是小蛇,而是巨蟒的意思...
所以 Python 语言官方的标志也是两条蛇的形状:
Python Logo
为啥叫这个名字?这就不得不说到 Python 语言的创世人吉多(Guido van Rossum),这个语言是这位爷爷在 89 年圣诞节为了打发时间发明出来的,取名时简单的用了他当时喜欢的一部电视剧「Monty Python」里的这个词 —— Python。
Python 语言之父
好,既然知道了 Python 名字的来历,我们今天作品的灵感就随之而来了~
画一条小蛇
嗯,我们今天就用刚刚学过的 turtle 库绘制一条小蛇。
首先,我们学习一个 turtle 的新函数,它是 turtle.circle(),没错,就是绘制圆形的意思。
大家先运行这样的两条语句
turtle.circle(100)
turtle.circle(100, 45)
圆和圆弧
是不是很简单,一个整圆和一个圆弧就画好了,所以circle(radius, degree)参数的含义就是圆的半径与夹角,虽然还有别的参数,目前先知道这两个就可以了。
有了圆形的画法,小蛇就很好画了...
为什么?
你想想蛇 🐍 的样子,不就是弯弯曲曲的吗?
也就是说蛇可以由一些圆弧来组成。
当然我们要画的蛇是蟒蛇还是巨蟒,不能太细了,可以用turtle.pensize()函数设置一下画笔的粗细,很简单。
根据这个思路,我们有了作品的第一稿:
第一次绘制的蛇
中间#开始后面的一行字是程序的注释,就是编程者写给自己或别人的话,解释这段程序的含义。
注释是程序中很重要的一个组成部分,因为注释可以增强程序的可读性(readability),这点我们后面还会提到。
一条简单的小蛇就画好了,但总感觉哪里有点不对...
我们观察代码,发现了这样一个问题,代码中这两条语句,重复执行了 3 次:
# 不断改变方向的圆弧
t.circle(40, 60)
t.circle(-60, 80)
t.circle(40, 60)
t.circle(-60, 80)
t.circle(40, 60)
t.circle(-60, 80)
能不能简化一下呢?
对,能不能简化一下!
回答当然是可以的,简化之前,我们来学习 Python 中非常有用的一个函数 —— range()
在编程中,我们使用循环结构来重复执行一段相同的代码,而此前,我们的程序都是按照从上至下的顺序来依次执行指令,这也被称为顺序结构。
那么在 Python 语言中,循环是怎么实现的呢,用的就是range()函数,我们先使用它的最简用法:
for i in range(9):
print(i)
0 到 8 的循环
我们发现,程序输出了 0 到 9 这十个数,而这就是一个简单的循环。
我怎么运行报错?
你仔细对比一下,哪里有不对的地方?
哦,我忘了一个冒号,还有一个空格...
对,for 循环的后面一定要有一个冒号,而所有需要重复的语句前都要有一个空格,表示这些语句都要受到循环的控制。
所以...
编程最考验你的细心
鲁迅
确实在理
这样,我们的思路就有了,稍加改写,程序化简为:
import turtle as t
t.penup()
t.forward(-160)
t.pensize(25)
t.pencolor('green')
t.pendown()
# 不断改变方向的圆弧
for i in range(3):
t.circle(40, 60)
t.circle(-60, 80)
最后,我们使用turtle.dot()函数为蛇画上眼睛,再使用turtle.hideturtle()函数隐藏掉箭头,一幅“Python”的作品就完成了:
作品
我们明天见~
记住循环的用法哦