ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-10-02 11:33:04  阅读:185  来源: 互联网

标签:turtle 包之 Python color num 100 360 size


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

标签:turtle,包之,Python,color,num,100,360,size
来源: https://www.cnblogs.com/tongxc/p/15361574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有