Add files via upload
This commit is contained in:
parent
f94069e206
commit
95084ddab3
|
@ -0,0 +1,76 @@
|
|||
通过前面的学习,相信你已经能够参考【图图】的说明来进行绘图创造了,那么从现在开始,我们将正式开始各种趣味图形绘画。
|
||||
|
||||

|
||||
|
||||
🔑 在【冲鸭】之前,请记住一个【锦囊妙计】,后面的画图过程中会涉及到各种各样的功能,有时我们可能会忘记指令怎么写,所以在每次训练的开头会为大家附上一个【图图】功能查询表,忘了就去看看吧。
|
||||
|
||||
|向前走<br>|t.forward(100)<br>|
|
||||
|:----|:----|:----|:----|
|
||||
|向后走<br>|t.back(100)<br>|
|
||||
|向左转<br>|t.left(90)<br>|
|
||||
|向右转<br>|t.right(90)<br>|
|
||||
|
||||
|
||||
万事俱备,只欠冲锋,好啦,正式开始我们图形挑战之旅吧!!!
|
||||
|
||||
# 🚀挑战1:
|
||||
|
||||
这是一道送分题,别说你不会,赶紧的~
|
||||
|
||||
题目描述:请参考下面图片中的内容,从左向右画出一条长度为100的直线吧。
|
||||
|
||||

|
||||
|
||||
# 🚀挑战2:
|
||||
|
||||
送分题又来了!
|
||||
|
||||
题目描述:请参考下面图片中的内容,从左向右画出一个度数为90的角吧。
|
||||
|
||||
(边的长度自己决定就好啦,可以也设置成100)
|
||||
|
||||

|
||||
|
||||
# 📺示例1:
|
||||
|
||||
下面,我们将一起来画几个简单的图形,第一个图形是一个三条边长度都为100的三角形,想一想该怎么画出来,如果想不出来,可以试试在草稿纸上画一画,要注意每次【图图】画完一条线后旋转的角度哦。
|
||||
|
||||

|
||||
|
||||
下面是三角形的答案,一定要自己尝试后再来看哦:
|
||||
|
||||
**讲解**:三角形一共有三条边,【图图】向前100后,完成第一条边的绘制,然后需要向右旋转120度,接着又向前100,完成第二条边后再向右旋转120度,向前100,完成最后一条边的绘制
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
#连续画三条边
|
||||
t.forward(100)
|
||||
t.right(120)
|
||||
t.forward(100)
|
||||
t.right(120)
|
||||
t.forward(100)
|
||||
t.right(120)
|
||||
t.done()
|
||||
```
|
||||
# 🚀挑战3:
|
||||
|
||||
通过学习后你已经能画出三角形了,那么,再用同样的方式来试试正方形吧
|
||||
|
||||

|
||||
|
||||
# 🚀挑战4:
|
||||
|
||||
看来你已经能绘制简单图形了,那么现在来尝试一下复杂一点的“十字”图吧,方法和前面的图形差不多哦,但是注意每转动一次后移动的距离:
|
||||
|
||||

|
||||
|
||||
真棒,这么快就完成了第一天的打卡内容了,是不是觉得还挺简单,哈哈,别着急,后面会逐渐提高难度,小心哦~
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
# 🔑技能包:
|
||||
|
||||
别忘了昨天学习的技能哦:
|
||||
|
||||
|向前走<br>|t.forward(100)<br>|
|
||||
|:----|:----|:----|:----|
|
||||
|向后走<br>|t.back(100)<br>|
|
||||
|向左转<br>|t.left(90)<br>|
|
||||
|向右转<br>|t.right(90)<br>|
|
||||
|
||||
|
||||
——————————————————————————————————————————————
|
||||
|
||||
今天是第二天,主题是【你妈妈叫你回家啦】
|
||||
|
||||

|
||||
|
||||
老师,你在开玩笑?
|
||||
|
||||
哈哈,今天的指令确实和回家有关系,叫做【回家指令】,【回家指令】这是个啥?名字起得这么有创意(无聊)吗?难道要让图图回家?
|
||||
|
||||
咳咳咳,回答正确,就是一个让图图回家的指令。
|
||||
|
||||
# 1、回家指令介绍
|
||||
|
||||
## (1)简介
|
||||
|
||||
为什么叫做回家指令呢?这是因为他是通过英文名home()翻译过来的,通过这一条指令可以帮助图图回到起点,也就是说,即使你通过指令让图图跑到了千里之外,我也能用这个指令让他回来,是不是一个很6的指令:
|
||||
|
||||

|
||||
|
||||
## (2)格式
|
||||
|
||||
那么,这么6的指令可以用来做什么呢?我来举个例子🌰吧:
|
||||
|
||||
### 📺示例1:
|
||||
|
||||
题目描述:请参考下面图片中的内容,画出一个直角三角形吧:
|
||||
|
||||

|
||||
|
||||
只知道两个直角边分别是80和60,但是另外一条斜边长度不知道,这个时候怎么办呢?
|
||||
|
||||
**路人甲:**不知道哎
|
||||
|
||||
**路人乙:**我是初中生,我学过【勾股定理】可以算
|
||||
|
||||
**隔壁小明:**难道是用home指令
|
||||
|
||||
是的,隔壁小明真聪明,通过home指令就能解决这个问题,最后一条边其实就是图图返回起点走的路:
|
||||
|
||||

|
||||
|
||||
程序如下:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(80)
|
||||
t.right(90)
|
||||
t.forward(60)
|
||||
t.home() # 返回起点
|
||||
t.done()
|
||||
```
|
||||
这样,通过home指令,让图图自动返回到起点,于是就画出了最后一条边,是不是非常简单,来试试吧!
|
||||
|
||||
# 🚀挑战1:
|
||||
|
||||
题目描述:请参考下面图片中的内容,画出一个钝角三角形吧。
|
||||
|
||||
(备注:钝角三角形就是有一个角度数大于90的的三角形)
|
||||
|
||||

|
||||
|
||||
# 🚀挑战2:
|
||||
|
||||
题目描述:请参考下面图片中的内容,画出对应的图形吧。
|
||||
|
||||

|
||||
|
||||
# 🚀挑战3:
|
||||
|
||||
有点厉害啊,已经解决了两个挑战了,那么咱们增加下难度吧!
|
||||
|
||||
题目描述:请参考下面图片中的内容,画出有一条对角线的正方形吧。
|
||||
|
||||
备注1:对角线就是两个相对的角顶点的连接线
|
||||
|
||||
备注2:图图回到起点后会自动旋转到水平向右
|
||||
|
||||

|
||||
|
||||
# 🚀挑战4:
|
||||
|
||||
能做到这里看来你已经掌握home指令的诀窍了,既然这样,那就来完成最后的挑战吧。
|
||||
|
||||
题目描述:请参考下面图片中的内容,画出一个直角梯形。
|
||||
|
||||
备注:上底就是较短的一条边,下底就是较长的一条边
|
||||
|
||||
提示:上底、下底、高的长度需要你自己设定,只要能画出类似的直角梯形就可以啦
|
||||
|
||||

|
||||
|
||||
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
今天,正儿八经给大家普及下新知识。
|
||||
|
||||
⛽️知识加油站——循环
|
||||
|
||||
循环在我们生活中非常普遍,比如我们乘坐旋转木马,旋转木马会一直循环,又比如说月球会一直不停绕着太阳旋转:
|
||||
|
||||

|
||||
|
||||
而在编程中循环也是一个非常重要知识,它可以让程序一直重复执行,比如下面这个程序,虽然只输入了一句话,但是通过设置循环次数为5,就能打印5次“我喜欢看海贼王”:
|
||||
|
||||
```plain
|
||||
for i in range(5):
|
||||
print('我喜欢看海贼王')
|
||||
```
|
||||
## 循环的格式
|
||||
|
||||
想使用循环非常简单,只需要按照下面的格式设置就可以了:
|
||||
|
||||
```plain
|
||||
# 括号里填写你想循环的次数,写上冒号后,换行,空4个空格后就可以写循环的内容
|
||||
for i in range(次数):
|
||||
循环的内容
|
||||
```
|
||||
📺练习1:
|
||||
|
||||
使用循环画一个正方形。
|
||||
|
||||

|
||||
|
||||
一起来分析下,要画一个正方形,需要下面这些步骤:
|
||||
|
||||
```plain
|
||||
向前100
|
||||
旋转90度
|
||||
向前100
|
||||
旋转90度
|
||||
向前100
|
||||
旋转90度
|
||||
向前100
|
||||
旋转90度
|
||||
```
|
||||
可以看成,我们要让计算机重复执行4次下面的内容:
|
||||
|
||||
```plain
|
||||
下面的内容要重复执行4次:
|
||||
向前100
|
||||
向右旋转90度
|
||||
```
|
||||
这样就就可以写成循环了:
|
||||
|
||||
```plain
|
||||
for i in range(4):
|
||||
t.forward(100)
|
||||
t.right(90)
|
||||
```
|
||||
完整代码:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
#连续画四条边
|
||||
for i in range(4):
|
||||
t.forward(100)
|
||||
t.right(90)
|
||||
t.done()
|
||||
```
|
||||
🚀挑战1:
|
||||
|
||||
题目描述:通过循环画出一个边长为100的等边三角形
|
||||
|
||||
备注:等边三角形就是三条边的长度相等、三个角角度都为60度的三角形
|
||||
|
||||

|
||||
|
||||
🚀挑战2:
|
||||
|
||||
题目描述:通过循环画出一个正六边形
|
||||
|
||||
备注:正六边形每个角的度数(大小)都一样,6个角总共720度
|
||||
|
||||
提示:需要先计算正六边形的每个角大小,再得出图图每次需要转多少度,这是小学三年级除法的难度,你敢说不会?ㄟ(▔︵▔ㄟ)
|
||||
|
||||

|
||||
|
||||
🚀挑战3:
|
||||
|
||||
能完成上面两道题,说明你还是很厉害的,那么咱们就提高一点难度吧,这道题你还能做对,那可就非常厉害了。
|
||||
|
||||
题目描述:使用循环,画出一个五角星:(可以像上面那样,先写出文字步骤来分析一下哦~)
|
||||
|
||||
👽拓展:如果画好了,还可以给五角星加上颜色
|
||||
|
||||

|
||||
|
||||
🚀挑战4:
|
||||
|
||||
光阴似箭,日月如梭,一转眼,你,竟然,做到了最后一道题,你,这么,厉害,爸妈知道吗?如果不知道就赶紧告诉他们吧。
|
||||
|
||||
下面是第三天的终极挑战:画一个圆
|
||||
|
||||

|
||||
|
||||
提示:画圆其实很简单,虽然你看着是一个圆,但其实,他可以看成是很多短短的边组成的,那么怎么来画圆呢?你可以看一看下面这个视频:
|
||||
|
||||
[https://baike.baidu.com/item/%E5%89%B2%E5%9C%86%E6%9C%AF/595781?secondId=25702197](https://baike.baidu.com/item/%E5%89%B2%E5%9C%86%E6%9C%AF/595781?secondId=25702197)
|
||||
|
||||

|
||||
|
||||
看完视频是不是发现啦,古代人通过在圆内画多边形来近似测量圆一周的长度,多边形边越多,形状上就越接近圆,那么基于这个方法,我们可以用图图来帮我们画一个圆,怎么来画呢,我们知道圆有360°,也就是说,如果要画圆,【图图】需要围绕中心走360次,每一次走一步,每走一步向右转1度,画出一个有360边的多边形就可以了。
|
||||
|
||||
下面就是画圆的关键,如果你不能理解,那就记住这个有趣的画圆公式吧:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
#请删除这一行,然后写上循环360次的程序吧
|
||||
t.forward(1) #向前走一步
|
||||
t.right(1) #向右转一度
|
||||
|
||||
t.done()
|
||||
```
|
||||
如果你已经画好了圆,再试一试修改forward里面的数字,看看会发生什么变化~
|
||||
|
||||
#
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
A:老师,你是在欺负我英语不好吗?整个英文标题
|
||||
|
||||
老师:对啊,你怎么知道我在欺负你
|
||||
|
||||
A:... ...
|
||||
|
||||
# 1、抬笔与落笔
|
||||
|
||||
## (1)简介
|
||||
|
||||
今天我们一起来学习一个新技能【抬笔】与【落笔】。
|
||||
|
||||
前面我们画了这么多图形,但是大家有没有发现,我们从来没有抬过笔,这是一件非常不科学的事,就好比,你笔尖从没离开过画纸,但却写下了下面这四个字(不能写连笔):
|
||||
|
||||

|
||||
|
||||
所以,在常规的绘画和写字中,我们其实是需要【抬笔】和【落笔】这两个动作的,同样的,图图也有这两个指令:
|
||||
|
||||
## (2)格式
|
||||
|
||||
```plain
|
||||
t.up() # 抬笔
|
||||
t.down() # 落笔
|
||||
```
|
||||
把这两句放到完整的程序中,先前进100步,然后抬笔,前进50步,然后落笔,然后再前进100步,
|
||||
|
||||
想一想可能画出的图形是什么样子,然后再运行一下这段代码看一看吧:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(100)
|
||||
t.up() #抬笔
|
||||
t.forward(50)
|
||||
t.down() #落笔
|
||||
t.forward(100)
|
||||
t.done()
|
||||
```
|
||||
# 🚀挑战1:
|
||||
|
||||
题目描述:画出一条虚线
|
||||
|
||||
(1)实线每一段长为10
|
||||
|
||||
(2)间断距离为5
|
||||
|
||||
提示:使用循环会更方便哦
|
||||
|
||||

|
||||
|
||||
# 🚀挑战2:
|
||||
|
||||
题目描述:绘制8条平行线
|
||||
|
||||
(1)每条线的长度为100
|
||||
|
||||
(2)相邻两条线同一端之间的距离为20
|
||||
|
||||
(备注:平行线倾斜程度自己设定就好,可以用文字写出走的步骤,看看循环的部分在哪里)
|
||||
|
||||

|
||||
|
||||
# 🚀挑战3:
|
||||
|
||||
不知不觉,又来到了最后一题,哦不对,是倒数第二题,这一题和上面一题难度差不多,耐心一点就能画出来。
|
||||
|
||||
题目描述:请画出四个平行的小旗子
|
||||
|
||||
(1)旗子高40
|
||||
|
||||
(2)旗面宽
|
||||
|
||||

|
||||
|
||||
# 🚀挑战4:
|
||||
|
||||
不知不觉,终于来到了最后一题,你还记得之前画过的的圆吗?这次有了抬笔功能的配合,我们就可以画出一个很常见的汽车标志啦:
|
||||
|
||||
(1)两个圆中心之间的距离是85
|
||||
|
||||
(2)想一想每画完一个圆后【图图】要向前移动多少呢?
|
||||
|
||||

|
||||
|
||||
画一个圆的关键步骤参考:
|
||||
|
||||
```plain
|
||||
for i in range(360):
|
||||
t.forward(1)
|
||||
t.right(1)
|
||||
```
|
||||
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
**老师**:通过两天的训练,相信大家对于循环已经掌握的非常好了,今天我们要学习的是【循环中的循环】
|
||||
|
||||
**A**:【循环中的循环】?老师,你是在传授我武林秘籍吗?
|
||||
|
||||
**老师**:你是猴子派来的吗?总想着武林秘籍
|
||||
|
||||
**A**:那什么是【循环中的循环】啊?
|
||||
|
||||
**老师**:听我细细道来
|
||||
|
||||
# 1、循环中的循环
|
||||
|
||||
循环中的循环是编程中常用的一种程序的结构,他也被称为【循环嵌套】,也就是在一个大循环里套着小循环,听起来有点复杂,但其实非常的简单,一起来学习一下吧:
|
||||
|
||||
在学习【循环嵌套】前我们先来练习一道题,这样有助于我们理解【循环嵌套】的含义。
|
||||
|
||||
# 🚀挑战1:
|
||||
|
||||
题目描述:参考下面图示,借助循环,画出四个并排在一起的正方形
|
||||
|
||||
(1)正方形的边长是40
|
||||
|
||||
(2)两个正方形之间的距离是20
|
||||
|
||||

|
||||
|
||||
⬇️⬇️⬇️ 做完后再看,实在做不出来也可以看,不到万不得已还是别看 ⬇️⬇️⬇️
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
**解析**:大家说如果要画四个正方形,需要重复画几个一样的正方形?
|
||||
|
||||
4个对吧,那如果用图图来画一个正方形需要重复几次【向前走100向右转90度】呢
|
||||
|
||||
也是4次,所以我们来看看,如果要通过图图来画出它需要怎么做:
|
||||
|
||||
```plain
|
||||
#画第一个正方形
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
#画完后要向前移动到到第二个正方形的顶点,需要向前移动60步,移动的时候是抬笔的状态
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
```
|
||||

|
||||
|
||||
如果还要画三次应该怎么办呢?哈哈,对的,继续用同样的语句三遍就行了
|
||||
|
||||
```plain
|
||||
#画第一个正方形
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
#画第二个正方形
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
#画第三个正方形
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
#画第四个正方形
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
```
|
||||
这个时候你发现了什么,是不是下面段落连续出现了4次,我们学习循环时说过,当重复不断出现时可以使用循环,这里仍然可以的,将这个循环的逻辑写成中文就是:
|
||||
|
||||
```plain
|
||||
下面的内容要循环4次:
|
||||
for i in range(4):
|
||||
t.forward(40)
|
||||
t.right(90)
|
||||
t.up()
|
||||
t.forward(60)
|
||||
t.down()
|
||||
```
|
||||
把中文也变成程序,和之前循环是一样的方式,加上for i in range(),但是一定要记得,后面这个整体前面有四个空格,还记得之前讲循环的时候说过吧,加四个空格是为了告诉程序,下面的内容归我管,要循环4次,可不要忘了哦:
|
||||
|
||||

|
||||
|
||||
是不是觉得好像听懂了,又好像有一点疑惑,怎么办呢?很简单,再来做两道题自然就懂了:
|
||||
|
||||
# 🚀挑战2:
|
||||
|
||||
题目描述:参考下面的图示,借助循环,画出四个并排在一起的三角形
|
||||
|
||||
(提示:➡️可以不用循环嵌套,但是呢,使用循环嵌套又会更简单,算了,用不用看你吧
|
||||
|
||||
➡️如果使用嵌套,你可以参考上面画4个正方形的方法哦,先用中文分析循环次数,在写成程序)
|
||||
|
||||
(1)等边三角形的边长是40
|
||||
|
||||
(2)两个三角形之间的距离是20
|
||||
|
||||

|
||||
|
||||
# 🚀挑战3:
|
||||
|
||||
不得了不得了,已经做到第3题了,少年我看你天赋异禀啊!
|
||||
|
||||
题目描述:参考下面的图示,借助循环,画出一个风车
|
||||
|
||||

|
||||
|
||||
👽拓展:在风车的基础上进行创作吧,看看你的风车能比下面的好看吗?
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# 🚀挑战4(选做):
|
||||
|
||||
这道题选做哦,如果你觉得前面的已经难不倒你了,那就再来试试这一道题吧!
|
||||
|
||||
题目描述:参考下面的图示,借助循环,画出一个风车
|
||||
|
||||
(1)菱形的两个角分别是60°和90°
|
||||
|
||||

|
||||
|
||||
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
# 1、坐标
|
||||
|
||||
地瓜:土豆土豆,我是地瓜,我现在已经被敌人包围了,请求支援
|
||||
|
||||
土豆:地瓜地瓜,我是土豆,请立刻告诉我你的坐标
|
||||
|
||||

|
||||
|
||||
什么是坐标呢?读完上面这个对话你肯定有点感觉了吧,坐标就是一个物体在空间中的位置,就比如上面飞机在天空中的位置,你需要告诉友军他的位置,友军才能去营救。
|
||||
|
||||
又比如说下面这个图,就是一个平面空间,我们在上面画了两根轴来帮助大家记录坐标,这两根轴就叫做坐标轴,两根轴交叉的就是坐标为(0,0)的地方,那么怎么来读取坐标呢?其实非常简单,看【图图】对应坐标轴上的数字就可以了。
|
||||
|
||||

|
||||
|
||||
就比如这样,图图的位置分别对应横轴的1,对应纵轴的3,所以他的坐标是(1,3):
|
||||
|
||||

|
||||
|
||||
## 🚀挑战1:
|
||||
|
||||
题目描述:请你写出图图在在下图中的位置:
|
||||
|
||||
(对应横轴和纵轴来看哦~)
|
||||
|
||||

|
||||
|
||||
# 2、goto功能
|
||||
|
||||
那么,怎么才能帮图图到指定的坐标呢?这就要使用到一个有趣的功能goto,它可以帮助我们去到指定的坐标位置,但是在使用它之前需要记住两个重要秘诀:
|
||||
|
||||
### 秘诀1:如果使用goto功能时没有抬笔,那么图图会向着指定的位置画过去
|
||||
|
||||
这个秘诀说的什么意思呢?我们一起来看看:
|
||||
|
||||
(1)goto语句的用法
|
||||
|
||||
```plain
|
||||
t.goto(x, y) # x,y就是对应的坐标
|
||||
```
|
||||
如果我使用下面这一段语句,你猜猜会发生什么:
|
||||
|
||||
```plain
|
||||
t.goto(80,80)
|
||||
```
|
||||
出现了下面的图像,原因是因为我们让图图去坐标是(80,80)的位置,所以图图就直接移动过去了,不过使用goto语句,图图的朝向是不会改变的哦:
|
||||
|
||||

|
||||
|
||||
那么,如果我想让图图**瞬间移动**过去要怎么办呢,这时候秘诀2了
|
||||
|
||||
### 秘诀2:要让图图瞬间移动到某个坐标,而不留下痕迹,就要使用抬笔和落笔功能
|
||||
|
||||
```plain
|
||||
t.up()
|
||||
t.goto(x,y) # 比如t.goto(80,80)
|
||||
t.down
|
||||
```
|
||||
## 🚀挑战2:
|
||||
|
||||
请你将图图**瞬间移动**到坐标为(100,100)的地方,如下图:
|
||||
|
||||
(提示:下图中的红色圆圈只是示意图图的一开始的位置,忽略就可以)
|
||||
|
||||

|
||||
|
||||
# 3、乾坤大挪移
|
||||
|
||||
有小伙伴儿会问:“乾坤大挪移是什么?”,很简单,就是让图图进行各种移动,各种来考你的题目,hiahiahiahia~
|
||||
|
||||
## 🚀挑战3:
|
||||
|
||||
还记得小时候用过的钉板吗?我们通过钉板制作各种各样的图形,比如下面这种。
|
||||
|
||||
那么现在请使用goto语句,参考下面的坐标画出对应的图形:
|
||||
|
||||
(备注:如果画出来的图形很小,可以把坐标都放大10倍哦,比如把(1,1)改成(10,10),把(5,1)改成(50,10))
|
||||
|
||||

|
||||
|
||||
## 🚀挑战4:
|
||||
|
||||
看来你已经简单了解了坐标和使用坐标的方式,那么,再来考考你吧。
|
||||
|
||||
题目描述:请先将图图移动到坐标为(100,100)的位置,然后画出一个边长为50的五角星
|
||||
|
||||
(备注:五角星的每个角都是36°,其他角的参数参考下图2)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
恭喜你已经完成了前六天的任务,在前六天中你学习到了编程中的循环,画图模块中的方向功能、抬笔功能、颜色填充功能、回家功能,并且熟悉了常见的图形、多边形,能够坚持到第七天,你一定非常厉害,既然这样,那么就请准备好,迎接最后的挑战吧!
|
||||
|
||||
最后的挑战
|
||||
|
||||
世界上有非常多的国家,咱们中国只是其中一个,除了中国,还有很多国家分布在世界各地,他们有的领土大,有的领土小,有的很有名气,有的可能你还没听说过,但是无论哪个国家,他们都有一个象征自己国家的物品,你知道是什么吗?
|
||||
|
||||

|
||||
|
||||
对啦,这个物品就是国旗,即使是新成立的国家,也需要设计属于自己的国旗,而每一种国旗都有自己不同的含义,比如咱们中国的国旗,这可不是简单在上面涂个颜色、画几个星星,星星的角度和数量都是有讲究的。在中国国旗上,红色象征革命,旗上的五颗五角星及其相互关系象征共产党领导下的革命人民大团结。五角星用黄色是为了在红地上显出光明,四颗小五角星各有一尖正对着大星的中心点,表示围绕着一个中心而团结。
|
||||
|
||||

|
||||
|
||||
当然啦其他国家的国旗也有属于自己国家、自己历史的意义。比如冰岛,这可不是一个岛,他也是一个国家,他的国旗是这样的:
|
||||
|
||||

|
||||
|
||||
采用了红色、蓝色和白色,象征冰岛是屹立于汪洋大海的一个炽热而又被冰雪覆盖的美丽岛国,十字图案源自丹麦国旗图案,表示冰岛历史上与挪威、丹麦的关系。
|
||||
|
||||
国旗虽上面的图案虽然看起来简单,但是要画出来可不容易,今天我们就为大家准备了下面2种国旗,选择1种你觉得对自己有一定挑战的国旗,并通过图图将他画出来吧。
|
||||
|
||||
## ⛽️加油站—图层
|
||||
|
||||
在开始画图前我们需要再学习一个重要的知识——图层,认识了图层,你使用图图就能起到事半功倍的作用。
|
||||
|
||||
什么是图层呢?其实非常简单,你可以理解成一张图是由多层图叠在一起的,比如下面的【瑞士国旗】:
|
||||
|
||||

|
||||
|
||||
它可以由两层组合在一起,最下面一层是红色,上面一层是白色的十字:
|
||||
|
||||

|
||||
|
||||
所以,如果要使用图图,就可以先画最下面一层红色背景,再画白色的十字。
|
||||
|
||||
### 📺练习1:
|
||||
|
||||
说说下面的【加拿大国旗】可以由几层组成,分别是那几层呢?
|
||||
|
||||

|
||||
|
||||
答案:可以有三层组成:最下面一层是红色长方形,中间层是白色长方形,最上面一层是红色枫叶
|
||||
|
||||
## 🚀挑战开始!
|
||||
|
||||
### (1)冰岛国旗 难度系数🌟🌟🌟
|
||||
|
||||
参考:
|
||||
|
||||
设置成蓝色:t.color('#0048E0')
|
||||
|
||||
设置成红色:t.color('#FF0F00')
|
||||
|
||||
设置成白色:t.color('white')
|
||||
|
||||

|
||||
|
||||
参考坐标图:
|
||||
|
||||

|
||||
|
||||
### (2)朝鲜国旗 难度系数🌟🌟🌟🌟
|
||||
|
||||
参考:
|
||||
|
||||
(1)
|
||||
|
||||
设置成蓝色:t.color('#0048E0')
|
||||
|
||||
设置成红色:t.color('#FF0F00')
|
||||
|
||||
设置成白色:t.color('white')
|
||||
|
||||
(2)
|
||||
|
||||
五角星的小边长度为23
|
||||
|
||||

|
||||
|
||||
参考坐标图:
|
||||
|
||||

|
||||
|
||||
#
|
||||
|
|
@ -0,0 +1,234 @@
|
|||
|
||||
本篇主要介绍 Python 的安装与环境配置方法。Python作为一门通用型的编程语言,可以通过很多方法完成安装,同时,也可根据实际需求搭建不同类型的开发环境。由于 Jupyter 开发环境是最通用的开发环境,同时,Jupyter 本身也是 Notebook 形式的编程环境,非常适合初学者上手使用。因此,本次内容将主要采用 Jupyter Notebook/Jupyter Lab 来进行演示,本篇也将详细介绍如何通过通用科学计算平台 Anaconda 来进行 Python和Jupyter 的安装。
|
||||
|
||||
|
||||
# 一、Anaconda下载与安装
|
||||
|
||||
Anaconda 是一个工具包,将 Python 和许多与科学计算相关的库捆绑在一起,形成了一个方便的科学计算环境,你安装了 Ananconda 就相当于安装了 Python 外加这些模块和库,省去了自己下载和安装各种包的麻烦,方便初学者专注于学习 Python。
|
||||
|
||||

|
||||
|
||||
此处,我们采用 Anaconda 进行 Python 安装和开发环境搭建。
|
||||
|
||||
|
||||
## 1、下载Anaconda
|
||||
|
||||
访问Anaconda官网(https://www.anaconda.com),在下拉菜单中的Products里选择Individual Edition,个人版,同时也是免费版。此版本中不涉及付费内容,可供个人用户使用。
|
||||
|
||||

|
||||
|
||||
进入页面后,点击Download,会自动跳转到操作系统选择的界面。
|
||||
|
||||

|
||||
|
||||
此时,可根据自身操作系统进行选择下载
|
||||
|
||||

|
||||
|
||||
当然,windows 64的用户也可直接通过下述网盘连接进行下载,该版本为 Anaconda3-2020.11-Windows-x86_64。
|
||||
|
||||
- 链接:https://pan.baidu.com/s/1IEasB0epWpPRhgYdgSCHaA
|
||||
- 提取码:i6zj
|
||||
|
||||
## 2、安装Anaconda
|
||||
|
||||
下载完成后,即可开始安装。双击安装文件,进入欢迎界面,点击 Next。
|
||||
|
||||

|
||||
|
||||
点击同意,进入到下一步。
|
||||
|
||||

|
||||
|
||||
选择软件使用权限,是指针对当前登录用户还是所有用户,二者都行,无特殊要求。
|
||||
|
||||

|
||||
|
||||
选择安装位置,完成安装。
|
||||
|
||||

|
||||
|
||||
如果出现此页面,需要勾选配置环境变量选项。
|
||||
|
||||

|
||||
|
||||
无序安装VS Code,直接跳过即可。
|
||||
|
||||

|
||||
|
||||
安装完成后,在开始菜单栏,或者软件安装位置,找到Anaconda Navigator并打开。
|
||||
|
||||

|
||||
|
||||
进入到如下界面。
|
||||
|
||||

|
||||
|
||||
我们能看到Anaconda中集成了非常多数据科学计算相关的功能,并且,在安装过程中,也完成了Python的安装和环境变量的设置,以及Jupyter和PyCharm的安装。其中Jupyter是本次学习将用到的代码编辑工具,而PyCharm则是一款集成开发环境(IDE),本次学习并不涉及。
|
||||
|
||||
|
||||
## 3、启动Jupyter
|
||||
|
||||
我们能够看到,在Anaconda中有两个Jupyter组件,一个是**Jupyter Notebook**,一个是**Jupyter Lab**。其中,Lab是NoteBook的升级版,用户交互界面更加友好,并且拥有许多额外辅助功能,例如代码框分屏、文件管理系统等,但相比NoteBook,Lab并不支持第三方插件,因此如果是想使用Jupyter丰富的插件,则只能选择NoteBook。不过二者在实际编程功能使用上没有区别,本次学习推荐使用Jupyter Lab。
|
||||
|
||||
点击Jupyter Lab,启动相关服务,系统会自动打开浏览器并进入到Jupyter Lab界面。
|
||||
|
||||

|
||||
|
||||
能够成功弹出浏览器窗口,则说明安装成功。如果浏览器关闭,再次点击Anaconda中JupyterLab组件中的Launch即可再次打开Jupyter界面。
|
||||
|
||||

|
||||
|
||||
或者在浏览器里直接输入 http://localhost:8890/lab。
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
# 二、Jupyter基本操作
|
||||
|
||||
接下来,简单介绍 Jupyter 的基本操作。
|
||||
|
||||
## 1、简单代码编写尝试
|
||||
|
||||
在 Jupyter Lab 主界面中,左边是文件目录,右边是编程界面,首次登陆时,点击 Python3 即可创建一个新的编程文件。
|
||||
|
||||

|
||||
|
||||
如下所示:
|
||||
|
||||

|
||||
|
||||
同时,在左侧文件目录,也会出现一个新的ipynb文件,也就是正在编辑的代码文件。
|
||||
|
||||
> ipynb 文件是 ipython Notebook 的简写,Jupyter 脱胎于 ipython 编辑器,因此 Jupyter 文件仍然保留了 ipynb 的文件类型命名方式。
|
||||
|
||||
接下来,简单尝试在右侧代码框中输入 Python 代码。点击右侧代码框(cell)中输入`a = 1`。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
也就是令`a = 1`,然后 shift+enter 执行该代码。执行完成后,会自动新生成一个 cell,接下来的代码就可以在新生成的 cell 中执行。在新生成的 cell 中,输入`a`能够看到,返回结果就是`a`的赋值。
|
||||
|
||||

|
||||
|
||||
至此,我们就完成了一次简单的 Python 代码编写和运行。
|
||||
|
||||
## 2、Notebook式编辑环境
|
||||
|
||||
将代码写入一个个**cell**,代码文件由一个个cell组成,书写代码时就像一行一行在记笔记,就是所谓的Notebook式的代码编辑环境。Notebook式代码编辑环境其实也是REPL(Read Eval Print Loop)环境的一种,即交互式编译。简单来说,交互式编译就是指允许用户逐行输入代码、逐行查看结果,从而逐行进行调试。这无疑是大幅降低了代码编写的难度,这也是建议Python初学者使用Jupyter的原因。
|
||||
|
||||
## 3、Jupyter的基本操作
|
||||
|
||||
由于后续Jupyter将作为主力代码编辑器,因此我们有必要深入了解Jupyter的一些常用功能。当然,Jupyter本身也是一个独立的软件,具体软件的功能介绍可以查看[Jupyter](https://jupyter.org/)官网(https://jupyter.org),里面有Jupyter所有功能的完整介绍。
|
||||
|
||||

|
||||
|
||||
此处先介绍实际学习过程中常用功能。
|
||||
|
||||
### (1).cell类型选择
|
||||
|
||||
在Jupyter中,每个cell除了代码以外,还可以使用Markdown语法输入文本内容,以及尚未确定格式的草稿。选定一个cell后,选择code则是代码内容,选择Markdown则是使用Markdown语法输入文本内容,选择Raw则是草稿内容,不会输出任何结果。
|
||||
|
||||

|
||||
|
||||
例如,使用Markdown语法打印标题:
|
||||
|
||||

|
||||
|
||||
同样,是`shift+enter`执行markdown语法。
|
||||
|
||||

|
||||
|
||||
可以看出,jupyter还是个不错的笔记工具,同时,也非常适合编写数据分析报告。
|
||||
|
||||
### (2).cell不同模式及快捷键
|
||||
|
||||
cell有两种不同模式,选中cell时是 **command(命令)** 模式,而单击cell内,出现光标闪烁时,则是进入了cell内容的 **edit(编辑)** 模式,在编辑模式下,可以进行内容输入,而在命令模式下,则可使用一些cell快捷键对其进行操作。
|
||||
|
||||
|
||||
快捷键 | 操作| 快捷键 | 操作
|
||||
---|---|---|---
|
||||
a | 在上方插入一个cell | b | 在下方插入一个cell
|
||||
x | 剪切该cell | c | 复制该cell
|
||||
v | 在cell下方粘贴复制的cell | m | 转为markdown模式
|
||||
y | 转为code模式 | r | 转为raw模式
|
||||
z | 撤销操作 | 双击d | 删除该cell
|
||||
|
||||
|
||||
### (3).Jupyter Lab文件管理系统
|
||||
|
||||
相比Jupyter Notebook,Jupyter Lab拥有非常便捷的文件管理系统,我们前面已经尝试,当创建一个新的ipy文件时,左侧文件栏将出现对应文件。Jupyter Lab左侧就是其文件管理界面,在其中,我们可以进行文件创建、文件夹创建、文件上传等操作。
|
||||
|
||||

|
||||
|
||||
|
||||
### (4).Jupyter Lab文件系统主目录及修改方式
|
||||
|
||||
那么,我们创建的ipy文件存在哪呢?初次Anaconda,一般系统会默认Jupyter的主目录就是系统的文档目录。但文档目录在C盘下,如果是首次安装jupyter,并想要切换默认主目录,想要单独设置一个文件夹作为默认主目录,可以按照如下步骤进行操作:
|
||||
|
||||
|
||||
**在anaconda中打开CMD.exe Prompt,进入命令行界面**
|
||||
|
||||

|
||||
|
||||
当然,此处也可以`win+r`,然后输入`cmd`进入命令行。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
**生成jupyter配置文件**
|
||||
|
||||
在命令行中,输入
|
||||
|
||||
```python
|
||||
jupyter notebook --generate-config
|
||||
```
|
||||
|
||||

|
||||
|
||||
注意上述配置文件的保存路径。若已有配置文件,再次输入命令将可选择是否覆盖原配置文件。当然,覆盖原配置文件将导致原配置失效。
|
||||
|
||||

|
||||
|
||||
**修改主目录配置**
|
||||
|
||||
接下来,按照命令行中提示的配置文件路径,找到配置文件。
|
||||
|
||||

|
||||
|
||||
可以用文本编辑器打开,能够看到所有的Jupyter可选配置。
|
||||
|
||||

|
||||
|
||||
`ctrl+f`进入搜索栏,搜索`c.NotebookApp.notebook_dir`
|
||||
|
||||

|
||||
|
||||
将对应位置的#号删除,使其配置生效,并在等号后面输入新的主目录文件夹位置(自行选择文件位置),保存退出,并在**重启Jupyter后生效**。
|
||||
|
||||
|
||||
**查看新的主目录**
|
||||
|
||||
进入对应文件夹位置,查看文件夹内文件和Jupyter Lab内显示文件是否一致。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
至此,新的主目录文件设置成功。当然,任何对主目录文件的操作都会同步至Jupyter Lab的文件栏页。
|
||||
|
||||
> 不难发现,Jupyter文件系统主目录就类似于其他编程语言的操作空间概念。
|
||||
|
||||
### (5).停止ipy进程
|
||||
|
||||
由于Python代码在运行过程中,对象都存储在内存中,因此,为了合理控制内存,在必要的情况下需要手动终止Jupyter进程。此时可以使用左 侧栏的KERNEL SESSIONS功能,进行操作。
|
||||
|
||||

|
||||
|
||||
点击shut down即可关闭对话。
|
||||
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
# 1、Turtle图图
|
||||
|
||||
在开始练习前,先来认识一下接下来会陪伴你好几天的程序小伙伴儿turtle【图图】吧,为什么叫做turtle【图图】呢,是因为它长这样:
|
||||
|
||||

|
||||
|
||||
弄错了,是这个:
|
||||
|
||||

|
||||
|
||||
虽然有点丑丑的,但确实是一直货真价实的乌龟,乌龟的英文是turtle,你也可以叫他【图图】,当然你要是叫他小乌龟,也......没啥问题......😓
|
||||
|
||||
# 2、图图的设置
|
||||
|
||||
天啊!乌龟竟然能画图,开玩笑吗?
|
||||
|
||||
不过这确实是一只会画图的乌龟,就像乌龟在海滩上爬行能留下痕迹一样,程序中的【图图】也能帮助我们画出各种各样的线条。
|
||||
|
||||

|
||||
|
||||
## (1)导入图图库
|
||||
|
||||
想要使用图图帮助你画图,需要提前做好一些设置,设置很简单,一共就两步:
|
||||
|
||||
1、导入图图库
|
||||
|
||||
2、设定重要信息
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.done()
|
||||
```
|
||||
**第一行**就是导入【图图】库,然后给图图起了个新的名字t (后面会用到)
|
||||
|
||||
**第三行**是固定的设置,咱们每次写上就行
|
||||
|
||||
**第四行**是给图图设置一个形状,这里是turtle(乌龟形状),你也可以改成下面的英文:
|
||||
|
||||
arrow circle square triangle classic
|
||||
|
||||
**第六行**也是一定要有的语句,它的作用是告诉程序,“我画完啦!”
|
||||
|
||||
### 练习1:
|
||||
|
||||
将第4行的?改成其他几个英文单词,看看有什么不一样吧:
|
||||
|
||||
(单词:arrow circle square triangle classic)
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='?')
|
||||
t.done()
|
||||
```
|
||||
# 3、行动吧!图图
|
||||
|
||||
## (1)图图走起来
|
||||
|
||||
掌握了图图的基本设置,就可以让图图开始行动啦,我们先学习最简单的向前走:
|
||||
|
||||
```plain
|
||||
t.forward(100) # 向前走100步
|
||||
```
|
||||
想让图图向前走几步,数字就是多少,把这行程序写入到前面的程序中试试:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(100) #向前走100步
|
||||
t.done()
|
||||
```
|
||||
既然有向前走,那么,当然还有向后退,赶紧试试吧:
|
||||
|
||||
```plain
|
||||
t.back(100) # 向后退100步
|
||||
```
|
||||
## (2)向左转
|
||||
|
||||
既然能走,当然可以转弯啊,图图可是“艾科不来梅西多亚瑟星球”最能转的乌龟
|
||||
|
||||
向左转也很简单,就是下面这个口令啦:
|
||||
|
||||
```plain
|
||||
t.left(90) #向左转90度
|
||||
```
|
||||
再加上向前走我们就能画出一个直角啦:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(100) #向前走100步
|
||||
t.left(90) #向左转90度
|
||||
t.forward(100) #向前走100步
|
||||
t.done()
|
||||
```
|
||||
### 挑战1:
|
||||
|
||||
(1)修改left中的角度,看看图图能画出下面这些角吗?(钝角和锐角)
|
||||
|
||||
(2)除了向左转,也有向右转哦,他的指令是这样的t.right(100),赶紧试试吧!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 练习2:
|
||||
|
||||
如果要画出下面这个角度为30度的角应该怎么办呢?
|
||||
|
||||

|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(100) #向前走100步
|
||||
t.right(30) #向右转30度
|
||||
t.forward(100) #向前走100步
|
||||
t.done()
|
||||
```
|
||||
这样写对吗?
|
||||
|
||||
哈哈,当然不对,来画一条辅助线看看,图图实际转动的度数是红色箭头指示的角度,我们知道平角等于180度,平角也就是下面这个平平的线啦:
|
||||
|
||||

|
||||
|
||||
所以图图实际转动的角度等于180 - 30 = 90,之后我们会画很多这样的角,你也可以做一条辅助线,用180减去标出来的角,就是要转动的角度啦:
|
||||
|
||||

|
||||
|
||||
正确的写法:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.forward(100) #向前走100步
|
||||
t.right(150) #向右转150度
|
||||
t.forward(100) #向前走100步
|
||||
t.done()
|
||||
```
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
学完【预备课1】你是不是认为图图只是一个能简单移动的乌龟?
|
||||
|
||||
其实图图的能力相当强大,当你学的知识越来越多后甚至可以使用图图去创作这样一幅画:
|
||||
|
||||

|
||||
|
||||
当然,这是很久以后了
|
||||
|
||||

|
||||
|
||||
|
||||
不过,千里之行,始于足下,我们继续再来学习几个基础技能吧:
|
||||
|
||||
1、给图画涂色
|
||||
|
||||
给图画涂色其实很简单,和我们用颜料笔画画的步骤是一样的
|
||||
|
||||
(1)先用笔在颜料盘中粘一个颜色
|
||||
|
||||
(2)然后开始涂色
|
||||
|
||||
(3)当涂完颜色后结束涂色
|
||||
|
||||
用程序写也是这三步:
|
||||
|
||||
t.color('red') #color是颜色的英文,括号里写上你想使用的颜色的英文单词
|
||||
|
||||
t.begin_fill() #开始填充颜色,begin:开始,fill:填充
|
||||
|
||||
t.end_fill() #结束填充颜色,end:结束
|
||||
|
||||
涂色的格式是这样的:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.color('red') #颜色设置成红色
|
||||
t.begin_fill() #开始填充
|
||||
# 这里写要画的图形的指令
|
||||
t.end_fill() #结束填充
|
||||
|
||||
t.done()
|
||||
```
|
||||
如果要填充一个三角形可以这样写:
|
||||
|
||||
```plain
|
||||
import turtle as t
|
||||
t.TurtleScreen._RUNNING = True
|
||||
t.shape(name='turtle')
|
||||
t.color('red') #颜色设置成红色
|
||||
t.begin_fill() #开始填充
|
||||
t.forward(60)
|
||||
t.right(90)
|
||||
t.forward(80)
|
||||
t.right(143)
|
||||
t.forward(100)
|
||||
t.right(127)
|
||||
t.end_fill() #结束填充
|
||||
|
||||
t.done()
|
||||
```
|
||||
将red改成其他的颜色试试吧:
|
||||
|
||||
|红色<br>|red<br>|
|
||||
|:----|:----|:----|:----|
|
||||
|黄色<br>|yellow<br>|
|
||||
|蓝色<br>|blue<br>|
|
||||
|绿色<br>|green<br>|
|
||||
|紫色<br>|purple<br>|
|
||||
|粉丝<br>|pink<br>|
|
||||
|
||||
|
||||
#
|
||||
|
Loading…
Reference in New Issue