turtle蟒蛇绘制
在MOOC上学了turtle库的绘图功能之后,便被python的强大而震撼,即使说python是当今世界唯一的超级语言也不为过。它所包含的第三方库,比其他编程语言加起来都要多,可以满足各个行业的各种需求,而且他最大的特点就是语法简单,强制的格式控制使得代码写出来甚是美观,得到了广泛应用。甚至还有人发出了“人生苦短,我学Python”的感叹!
因为只是Python刚入门的小白,对turtle的使用只是初涉皮毛,看到那些大佬们画的玫瑰花,卡通人物,甚至一座城市,一颗樱花树,只会暗自羡慕,但是不急,来日方长嘛,先从简单的学起吧!
话不多说,先上代码!
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()
英语好的都知道turtle是海龟的意思,所以,我们就可以想象画布的正中间有一个趴着的海龟,它的爬行、飞行、转弯、甚至大小,都由你来控制。
短短16行控制海龟的代码,就绘制出了上图所示的与蟒蛇神似的“蟒蛇”!
代码分析
1.导入第三方库
保留字 | 格式 | 例子 | 说明 |
---|---|---|---|
import | import <库名> | import turtle | 后续调用库中函数时,必须加上库名。如:turtle.penup() |
import、from | from <库名> import* | from turtle import* | 后续调用库中函数时,不用加上库名。如:penup() |
import、as | import <库名> as <函数名> | import turtle as t | 后续调用库函数时,可使用t作为函数名。如:t.penup() |
对于这三种方法而言,我的想法是,初学者比较适合第一种,虽说有点麻烦,但有助于加深对turtle库以及库内函数的印象,不易出错。等熟练了之后,可以尝试第二种,但当代码量过长时,第二种就容易与自己自定义的函数重名,所以这个时候就需要第三种了。它们各有各的优缺点,选择合适的便可。
2.turtle窗体设置
turtle.setup(width,height,startx,starty)//设置窗体大小及相对屏幕位置,其中后两个参数可选,并且此函数不是必须的
3.turtle画笔控制函数
turtle.penup()/turtle.pu()//抬起画笔,海龟在飞行
turtle.pendown()/turtle.pd()//落下画笔,海龟在爬行
turtle.pensize(width)/turtle.width(width)//画笔宽度,海龟腰围
turtle.pencolor(color)//画笔颜色,海龟在涂装,其中,color可以是颜色字符,如:"purple";也可以是RGB值,如:0.63,0.13,0.94;还可以是元组值,如:(0.63,0.13,0.94)
4.turtle运动控制函数
turtle.forward(d)/turtle.fd(d)//向前走,其中d可正可负
turtle.back(d)/turtle.bk(d)//向后走,其中d可正可负
turtle.circle(r,extent)//表示以r为半径曲线走弧度extent,圆心默认在左边,若r为负,则在右边
5.turtle方向控制函数
turtle.setheading(angle)/turtle.seth(angle)//改变行进方向,但不行进,绝对角度
turtle.left(angle)//左转,海龟角度
turtle.right(angle)//右转,海龟角度
6.循环语句
for <变量> in range(<参数>):
<被循环执行的语句>//range()函数:range(N):产生0到N-1的整数序列/range(M,N)//产生M到N-1的整数序列
7.停止语句
turtle.done()//使程序运行后不会自动退出,而是手动关闭
绘图尝试
学了turtle一些简单的用法之后,就对它产生了浓厚的兴趣。因为不管是哪种语言,在编程的时候,最吸引我的,不是多么精妙的算法,也不是多么整齐的代码,而是能出来窗体,能进行人机交互。
所以我自己也尝试了一下,代码不长,一个简单的几何图形。
import turtle
turtle.setup(300,300)
turtle.penup()
turtle.fd(-100)
turtle.pendown()
turtle.pensize(10)
str_color=["pink","purple","red","green","blue","orange","black","yellow","gray","cyan","brown","tan","beige","chocolate","magenta","khaki","seashell","ivory","tomato","gold","turquoise"]
for i in range(20):
turtle.pencolor(str_color[i])
turtle.fd(200)
turtle.right(162)
turtle.done()