hello大家好,某一天,一个叫小蒟蒻的人想起了这个网站,请把失踪人口回归打在公屏上。。。
Q:为啥那么久没更新
A:因为(我懒)前一阵子小蒟蒻的主课不是很好,所以一直在学习+补课5555
PS:在写这段话的时候是10月1日国庆节,所以小蒟蒻也在这里祝大家节日快乐!
那话不多说了,进入正题
先来回顾一下上篇博文的内容吧,上次我们学习了Python中两个包:random 和 turtle
random的几个用法:
1、a = random.randint(1,10) # 在1~10之间随机取一个整数赋值到 a 中
2、a = random.choice([1,2,3,4]) # 在几个选定的值中随机挑选一个赋值到 a 中
3、a = random.uniform(1,3) # 在1~3之间随机取一个浮点数赋值到 a 中
turtle的几个用法:
1、turtle.forward(100) # 海龟向前走100格
2、turtle.left(或者right)(90) # 海龟左(右)转90度
3、turtle.done() # 完成作图后保留作图窗口
其实都很简单的吧(*^▽^*)
这篇博文,我们要学习熟练应用 turtle 包!画出这样的效果:
哇啊啊啊!这什么东西,看上去好复杂QAQ
复杂不可怕,小蒟蒻带大家一步一步来,包学包会!
首先我们仔细观察一下这个图,其实是由很多正方形构成的!
我用红笔勾出了其中一个:
勾的不太好,大家将就看一下吧。。。
不管怎么说,这么看应该很清楚了吧!
接着我们来读一下代码:
import turtle num = int(input('你想画几个正方形(360的因数)')) color = input('什么颜色(输入red、blue、yellow、green等)') size = int(input('笔的粗细(1、2、3、4、5等)')) turtle.speed(100) turtle.pensize(size) turtle.pencolor(color) for i in range(num): for j in range(4): turtle.forward(100) turtle.left(90) turtle.right(360/num) turtle.done()
有人就要说了:小蒟蒻!我们才刚学多少,你就让我们学这么长的代码!还有没有天理了!
欸,看着虽然长,但请你仔细读一下,大多数是我们学过的呀!
实在忘记了也没事,我们还是一行行来解读!
import turtle 没什么问题,导入 turtle 包
num = int(input('你想画几个正方形(360的因数)')) color = input('什么颜色(输入red、blue、yellow、green等)') size = int(input('笔的粗细(1、2、3、4、5等)'))
这就是最简单的输入,也没问题
重点来了:
turtle.speed(100) turtle.pensize(size) turtle.pencolor(color)
这三行代码是新知识,我来分别说一下它们的作用:
1、turtle.speed(100) # 把画图速度设置为100
原先 turtle 画图的速度默认为1,画完一张图要等很长时间(1分钟左右),这行代码就是加快画图速度
2、turtle.pensize(size) # 设置笔的粗细为 size ( size 为 int 类型)
Tips:size 为之前输入进来的值
原先 turtle 画图笔的粗细默认为1,可以根据需求或美观而改变
3、turtle.pencolor(color) # 设置笔的颜色为 color ( color 为 str 类型)
原先 turtle 画图画笔颜色默认为黑色,也可以根据需求或美观而改变
Tips:color 为之前输入进来的值
现在大家明白了吧O(∩_∩)O
那我们继续分析!
for i in range(num): for j in range(4): turtle.forward(100) turtle.left(90) turtle.right(360/num)
这里是一个嵌套循环,我们先看里面那层吧(#^.^#)
里面这段代码的效果大家可以试着推一下,有条件的童鞋也可以放到自己的编译器里试一下!
其实,它的功能就是画一个边长为100的正方形!
里面的循环看完了,那我们看外面那层
有可能又有小伙伴要问了:小蒟蒻小蒟蒻!这个 turtle.right(360/num) 是不是写错了?怎么没有和上面对齐啊?
诶,这可不是写错了,这是因为我不想让这行代码在里面的那层循环里运行!
说白了,这行代码是归外面那层循环管的,给大家画个图就明白了!
相信大家这样应该能看懂了吧!
这些都不算什么,最重要的是,我们要理解这个外层循环到底要干什么
首先循环 num 次,也就是画 num 个正方形!
敲黑板,划重点!!!
turtle.right(360/num) 为什么括号里是 360/num 呢?
这里涉及到一个小学数学问题:我要画 num 个正方形围成360度,每两个正方形之间差多少度呢?
答:360/num 度!
所以为什么要这样写大家明白了吧ヾ(✿゚▽゚)ノ
那么循环我们就也分析完了
turtle.done(),这个小蒟蒻就不多阐述了,之前的博文有详细介绍!
最后给大家一个思考的问题:为什么在输入 num 的时候强调了必须是360的因数呢?
好了,今天的内容就到这里啦,如果有什么问题就在评论区写出来,小蒟蒻看到后会第一时间回复的!
如果觉得写得不错的话就点个赞再走吧,拜拜┏(^0^)┛