Python拓展——import导入包之random随机数和turtle海龟作图(2)

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^)┛

原文地址:https://www.cnblogs.com/tongxc/p/15361574.html