Python入门系列课程—01 智能绘星

2021-11-06

点击蘑菇云创造 关注我们


第一课-智能绘星


一、学习背景

Python是一种跨平台、开源的高级编程语言,它语法简单,功能强大,深受编程爱好者推崇。因此,本套教程主要以python纯软件的编程为主,而在本单元中,我们借助海龟绘图的turtle库,结合python的基础语法进行学习。下面,让我们来开启python之旅的第一节课吧。


 

二、学习目标

本实践项目通过编写python程序来绘制星星并随心所欲地为其添加颜色。


知识目标:

1、了解python语言及海龟绘图

2、理解python中的库、注释、变量、函数、顺序结构和range()函数

3、了解python中的for循环、sleep()函数、以及赋值运算符“=”

4、掌握input()输入函数和print()输出函数的使用


技能目标:

1、掌握使用turtle库中的函数绘制五角星的方法

2、掌握使用turtle库中的函数为图形填充颜色的方法


三、学习准备

1、电脑

2、mind+编程软件

在游览器中输入以下网址,进入下载页面,点击立即下载则会跳转至Mind+客户端下载页面,选择适合自己电脑系统的版本下载即可。


下载地址:http://mindplus.cc/ 



四、学习实践

在本项目中,我们将创建三个层层递进,由浅入深的python程序,并在最终实现智能绘星的效果。

1.召唤一个小海龟并使其移动一段距离后左转。

2.绘制一个空心的五角星。

3.为五角星填色并使颜色变化。


任务1:召唤小海龟程序设计

在这第一个程序中,我们将召唤一个小海龟并使其移动一段距离后左转,通过它,我们可以了解turtle绘图的基本方式,为此,我们将分三步创建第一个程序。首先是分析任务,之后进行程序的编写,最后运行程序并观察效果。


1、任务分析

使用turtle库时,我们的画笔能在画布上往任意方向移动,这也是海龟绘图的原理——移动画图,利用画笔移动的路径来绘制图形。在这个任务中,我们首先需要将小海龟显示出来,之后控制小海龟在画布上移动一段距离并左转,最后结束绘图。这里我们将采用顺序结构的方式编写程序。具体流程如下:




 

2、程序编写

在正式编写程序代码之前,我们首先要创建一个项目文件及python程序文件。


STEP1:创建与保存项目文件

(1) 启动Mind+软件,点击右上角的“python模式”,



(2) 点击左上角“代码”选择编程方式,



之后我们会看到下面这样的屏幕,右侧是文件目录区,左侧分别是代码编写区和终端区。



(3) 创建完成后,点击左上方项目菜单中的“另存项目”,



(4) 在弹出的界面中选择桌面或其他位置以保存文件,输入文件名“智能绘星”,保存类型“mind+”,



经过上述四步,我们就成功创建并保存好项目文件啦,但是我们的项目是使用python语言来实现的,因此,接下来我们还需要在项目文件中再创建python程序文件。


STEP2:创建与保存python文件

(1) 点击“文件系统”,



之后会显示出文件目录,也就是python程序文件所保存的区域,



(2) 点击“项目中的文件”栏中的加号,



之后,会弹出一个空白输入框,



(3) 在弹出的输入框中写入“任务一.py”并回车确认,效果如下



这样我们就成功创建一个名为“任务一.py”的python程序文件了,这里需要注意的是python程序文件一定要以“.py”格式结尾才能进行编程,否则无法打开。


创建完成后,我们双击“任务一.py”文件即可对该文件在程序编写区内进行编程,图示如下。对于后续的其他任务,我们可通过同样的方式创建相应的python文件并编写程序。 



STEP3:编写程序

import turtle #导入海龟绘图库

turtle.shape("turtle")#外形显示海龟

turtle.forward(100)#向前移动距离100像素

turtle.left(90)#向左旋转90度

turtle.done()#结束绘图但不关闭窗口


3、程序运行

STEP1:点击右上方的运行按钮



STEP2:观察效果

我们发现在软件中弹出一个小窗口,一只黑色的小海龟显示在窗口的正中间,之后小海龟向前跑了一段距离(100像素),并向左旋转了90度。




任务2:绘制五角星程序设计

在这个程序中,我们将绘制一个空心的五角星,通过它,我们能掌握绘制五角星的多种编程方式。为此,我们将分四步创建程序。首先是分析任务,之后进行程序的编写,接着运行程序并观察效果,最后优化程序。


1、任务分析

经过上述内容的学习,我们对小海龟的移动指令已经有所了解了,那么该如何使用上述的方法来编程绘制五角星呢?绘制的时候,需要前进和转弯多少次,每次转弯的角度又该多大呢?


在这个任务中,为了能使最后画出的五角星处于中间区域,我们需要先将小海龟移动到中间偏左的坐标位,作为开始绘图的初始位置。具体步骤如下,



整体上我们依旧将采用顺序结构的方式编写程序。具体流程如下,



2、程序编写

STEP1:创建与保存项目文件

之前我们已经新建并保存过了项目文件,这里我们只需再建立一个新的名为“任务二.py”的python程序文件即可,具体操作方法如上。创建完成后,我们双击打开它进行编程。


STEP2:编写程序


向上滑动阅览

import turtle#导入海龟库

turtle.shape("turtle")#显示乌龟形状

turtle.penup()#抬笔,画笔移动时不绘制图形

turtle.goto(-50,0)#移动到(-50,0)坐标位

turtle.pendown()#落笔,画笔移动时绘制图形

turtle.speed(1)#设置画笔速度

#绘制过程

turtle.forward(120)#前进120像素

turtle.right(144)#右转144度

turtle.forward(120)

turtle.right(144)

turtle.forward(120)

turtle.right(144)

turtle.forward(120)

turtle.right(144)

turtle.forward(120)

turtle.right(144)

turtle.hideturtle()#隐藏海龟画笔

turtle.done()#停止画笔绘制,但绘图窗体不关闭



 

3、程序运行

运行程序,我们看到画布上:小海龟一开始先出现在原点,之后向前移动120像素后右转144度,并重复了五次,最后隐身不见,留下一个空心的五角星。



4、程序优化

俗话说,一千个观众就有一千个哈姆雷特,我们每个人编写程序的方式也可能不一样。事实上,绘制五角星有多种方式,在这里,小海龟“前进120像素后右转144度”这两步核心操作我们重复编写了五次,那我们有什么方式来简化代码,同样的效果吗?继续往下看吧!


STEP1:优化程序

import turtle#导入海龟库

turtle.shape("turtle")#显示海龟形状

turtle.penup()#抬笔,画笔移动时不绘制图形

turtle.goto(-50,0)#移动到(-50,0)坐标位

turtle.pendown()#落笔,画笔移动时绘制图形

turtle.speed(1)#设置画笔移动速度

#绘制过程
for i in range(5):#循环五次

    turtle.forward(120)#前进120像素

    turtle.right(144)#右转144度

turtle.hideturtle()#隐藏海龟画笔

turtle.done()#停止画笔绘制,但绘图窗体不关闭




任务3:智能绘星程序设计

在这个程序中,我们将为五角星填色并使颜色变化,通过它,我们可以掌握与终端交互绘制五角星的方式。为此,我们将分五步创建这个程序。首先是分析任务,之后进行填充颜色的程序编写,接下来运行程序并观察效果,然后优化程序实现通过终端交互的方式设定五角星的颜色,最后运行程序观察效果。


1、任务分析

在这个任务中,我们首先需要在程序中为五角星填充颜色,之后优化程序实现在终端中输入颜色继而自动绘制五角星的效果。


事实上在填充颜色程序中,相较于之前绘制的空心的五角星,这里我们只需添加填充颜色的操作即可,步骤如下图:



这里,整体上我们依旧将采用顺序结构的方式编写程序。具体流程如下左图,



在优化程序时,我们只需在一开始导入库后先在终端中输入画笔颜色和填充颜色并存储在变量中,之后在填充时将颜色统统用变量来替代就可以啦。具体流程如下右图,


2、程序编写

STEP1:创建与保存python文件

同上,我们在项目文件中再创建一个python程序文件“任务三.py”进行编程。


STEP2:编写程序

import turtle#导入海龟库

turtle.shape("turtle")#显示乌龟形状

turtle.penup()#抬笔,画笔移动时不绘制图形

turtle.goto(-50,0)#移动到(-50,0)坐标位

turtle.pendown()#落笔,画笔移动时绘制图形

turtle.speed(1)#设置画笔速度
turtle.begin_fill()#开始填充
turtle.pencolor('red')#设置画笔颜色为红色
turtle.fillcolor('yellow')#设置填充颜色为黄色

#绘制过程
for i in range(5):#循环五次

    turtle.forward(120)#前进120像素

    turtle.right(144)#右转144度

turtle.end_fill()#填充完毕

turtle.hideturtle()#隐藏海龟画笔

turtle.done()#停止画笔绘制,但绘图窗体不关闭


3、程序运行

运行程序,我们看到画布上:小海龟先出现在原点,之后开始移动,绘制出一个红色的五角星,绘制步骤结束后为五角星填充了黄色。




4、程序优化


STEP1:编写程序


向上滑动阅览

import turtle#导入turtle库

import time#导入时间库

a = input("请输入画线颜色(回车键确认):")#将输入的画线颜色赋值给a

b = input("请输入填充颜色(回车键确认):")#将输入的填充颜色赋值给b

print("正在绘图中ing")#在终端打印文字“正在绘图中ing”

#绘制五角星

turtle.shape("turtle")#显示乌龟形状

turtle.penup()#抬笔,画笔移动时不绘制图形

turtle.goto(-50,0)#移动到(-50,0)坐标位

turtle.pendown()#落笔,画笔移动时绘制图形

turtle.speed(1)#设置画笔速度

time.sleep(2)#延时两秒

turtle.begin_fill()#开始填充

turtle.pencolor(a)#设置画笔字体为a中的颜色

turtle.fillcolor(b)#设置填充字体为b中的颜色

for i in range(5):#循环五次

    turtle.forward(120)#前进120像素

    turtle.right(144)#右转144度

turtle.end_fill()#结束填充

turtle.hideturtle()#隐藏海龟画笔

turtle.done()#停止画笔绘制,但绘图窗体不关闭




5、程序运行


STEP1:点击运行,在终端交互界面中有提示,   


STEP2:输入“red”并回车,有新提示


STEP3:输入“yellow”并回车,

STEP4:点击绘图窗口

这时候,五角星就已经在绘制啦,只是绘制的窗口并未像之前一样立马弹出,而是隐藏在了电脑的任务栏,这里需要我们手动点一下方能弹出。最终效果如下:



是不是很神奇呢,通过这种方式,我们只要在终端中输入想要的画笔颜色和填充颜色就能随心所欲得变化五角星的颜色啦,让我们换一种颜色再试一试吧!




五、巩固提高


项目回顾

本节课我们利用海龟绘图(turtle)库,在弹窗上调出了小海龟并使小海龟移动,绘制出了一个五角星,之后为五角星填充了颜色,并最终实现通过终端输入智能变化颜色的效果。


知识小结


项目拓展

让我们利用今天所学的python知识及绘制五角星的方式,尝试画一面国旗出来吧!想一想绘制它需要哪些步骤呢。(示例程序见附录3)



附录


附录1turtle相关函数小结


附录2国旗示例程序



import turtle

#中国国旗

turtle.penup()#提笔

turtle.goto(-200,200)#落到指定坐标位置

turtle.pendown()#落笔

turtle.begin_fill()

turtle.fillcolor("red")

turtle.pencolor("red")

for i in range(2):#绘制长国旗边框轮廓

    turtle.forward(438)

    turtle.right(90)

    turtle.forward(292)

    turtle.right(90)

turtle.end_fill()

turtle.penup()#绘制大的五角星

turtle.goto(-170,145)

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor("yellow")

turtle.pencolor("yellow")

for x in range(5):#绘制五角星轮廓

    turtle.forward(50)

    turtle.right(144)

turtle.end_fill()

#绘制第一颗小的五角星

turtle.penup()

turtle.goto(-100,180)

turtle.setheading(305)#设置当前朝向为305°

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor("yellow")

turtle.pencolor("yellow")

for x in range(5):#绘制五角星轮廓

    turtle.forward(20)

    turtle.left(144)

turtle.end_fill()

#绘制第二颗小的五角星

turtle.penup()

turtle.goto(-85,150)

turtle.setheading(30)#设置当前朝向为30°

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor("yellow")

turtle.pencolor("yellow")

for x in range(5):#绘制五角星轮廓

    turtle.forward(20)

    turtle.right(144)

turtle.end_fill()

#绘制第三颗小的五角星

turtle.penup()

turtle.goto(-85,120)

turtle.setheading(5)#设置当前朝向为5°

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor("yellow")

turtle.pencolor("yellow")

for x in range(5):#绘制五角星轮廓

    turtle.forward(20)

    turtle.right(144)

turtle.end_fill()

#绘制第四颗小的五角星

turtle.penup()

turtle.goto(-100,100)

turtle.setheading(300)#设置当前朝向为300°







蘑菇云创造

微信号 : mgystem

扫码关注,了解更多



推荐阅读:







点击 “ 原文链接 ” ,了解更多

相关文章

Python入门到放弃(完结篇) | 打包exe程序

2021-11-06
至此Python从入门到放弃系列全部完毕,还有很多群友问起,怎么没有GUI开发的介绍,在这里解释一下,Python本身有一个TK界面但...

给小白的Python入门教程丨知识星球

2021-11-06
中的《如何七天入门 Python》课在一片 Python 课中脱颖而出,现在已有 2000 位星友.很多星友在星球内,顺利学会了 Python.如下...

一本书搞定Python入门到实践

2021-11-06
题图:Photo by Aaron Burden on Unsplash上周介绍了几本Python从入门到进阶书籍,今天推荐一本入门好书《Python编程:从入门到...

500多页,覆盖AI,Python入门,Python全栈的资料,我尽力了!

2021-11-06
Python全栈工程师,本资料都可以满足你的论文需求.长按识别下方二维码,备注相应关键字,获取适合你的论文资料.本号仅限100...

菜鸟学Python入门教程大盘点|7个多月的心血总结

2021-11-06
如何用Python获取知乎头条精选| XML处理实战运用4).关于Excel表格如何处理|这篇最用心Python入门教程大盘点就先总结到这里,几...

送python入门书

2021-11-06
送资料 长按下方二维码↓↓↓回复 6562免费获取超级适合入门,我就看它入门python

Python入门之数据处理——12种有用的Pandas技巧

2021-11-06
布尔索引 如果你想根据另一列的条件来筛选某一列的值,你会怎么做?例如...Apply函数 Apply是一个常用函数...填补缺失值 'fillna()'可以一次性解决:以整列的平均数或众数或中位数来替换缺失值.让我们基于...

用Python入门不明觉厉的马尔可夫链蒙特卡罗(附案例代码)

2021-11-06
这篇文章介绍了马尔可夫链蒙特卡洛在Python中入门级的应用操作,这个实际应用最终也使我学会使用这个强大的建模分析工具.此项...

Python入门系列:如何在Python中读写文件

2021-11-06
Python编程可以处理两种类型的文件.它们是文本文件和二进制文件.本教程描述了如何在Python编程中读写文本文件.文件访问模式...

Python入门到放弃 | 超简单 跟我学(四)

2021-11-06
JZGKCHINA工控技术分享平台尊重原创 勿抄袭勿私放其他平台「人生苦短,我用 Python」Python 诞生之初就被誉为最容易上手的编...

随机推荐