同学们,在完成Scratch课程学习后,经过短暂的休整,我们又见面了!
从Scratch Jr到Scratch,我们已经学习了许多编程知识。请你跟着老师的思路来回忆一下:
- 所谓计算机编程,就是使用程序设计的语言,与计算机进行对话,以便要求计算机完成指定任务的过程;
- 在Scratch中,我们可以建立不同的角色对象,利用这些对象的指令积木,我们可以让它们做出相应的动作,或者执行相应的运算,加减乘除,求余数,绝对值等等;
- 在编程过程中,我们可以通过“回答”把信息提供给我们的程序,而程序会根据我们提供的回答进行运算,比如判断你输入的是不是正确答案,然后再以“说”的方式,把程序的“想法”反馈给你;
- 使用Scratch编写的程序,有顺序、选择(即如果……那么……)、循环(即重复执行)三种最基本的结构,一个程序会用到这三种结构中的一到多个;
- 我们可以使用Scratch提供的基本积木完成任务,也可以把一定数量的基本积木“组合”起来,做成“自制积木”,便于我们多次完成同一类型的任务,并让程序的结构更加清晰。
- 如果Scratch提供的基本模块没有我们要的功能,我们可以通过“选择扩展”菜单,把更多功能引入到程序中。比如我们最常用的画笔和视频侦测就是最好的例子……
以上都是我们在使用Scratch编程过程中获得的宝贵经验。请务必牢记这些经验,因为它们对于我们下一步的学习也是至关重要的,所谓“温故而知新”,讲的就是这个道理。如果你能把以前所学的编程知识与下面要学习的知识结合起来,一定可以起到事半功倍的效果!
因此,我们这个阶段的课程名称是“从Scratch到Python”,这正是一个温故而知新的过程。让我们开始吧!
一、什么是Python
Python和我们所学的Scratch一样,也是一种编程语言。所不同的是,Scratch是一种“少儿编程”用的语言,也就是说,它是用于青少年进行学习训练用的编程语言,如果真要用它来解决现实生活中的问题,比如用于办公、娱乐,就有些心有余而力不足了。因此,我们必须学习那些软件工程师们使用的,“真正”的编程语言。
Python毫无疑问是这个世界上最受软件工程师们喜爱的编程语言之一。全世界现在有600多种编程语言,最流行的有十几种,而Python是名列前茅的。大家可以看一下著名的TIOBE开发语言排行榜,这个排行榜会每月更新编程语言的排名,它反映了编程语言在工程师们当中的流程程度及变化趋势,
TIOBE Index for April 2022
下面的图片是2022年4月的TIOBE编程语言排行榜,看看排在第一行的是什么?
这就是Python!也就是最新的排行榜中,Python是居于第一位的!
如果你留意的话,会发现Python的标志很像两条缠绕在一起的蛇(尽管显得很可爱)。而且“Python”这个英语单词也就是“蟒蛇”的意思。你一定很好奇,这门编程语言为什么取名叫“蟒蛇”呢?难道它的发明人是把蟒蛇当宠物养的?
这就要谈到Python的起源了。
话说1989年圣诞节,住在荷兰阿姆斯特丹的计算机专家Guido van Rossum(江湖人称“龟叔”,因为他的名字前三个字母是Gui龟)放假了,感觉很无聊。如果是别人,可能会想出去度假旅游,或者看电影玩游戏打发时间,但龟叔却不是一般人,他一直以来都觉得现有的编程语言难学又不好用,就决心利用假期的时间自己创造一门新的编程语言。在给这门语言起名字的时候,他想到了自己最喜欢的BBC电视剧的一个节目《蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)》,灵机一动,就给新编程语言取了Python(派森)这个名字!
事实上,许多大家熟悉的东西,它们的名字来源都很偶然,如果你将来成为一名厉害的专家,你完全可以拿自己喜欢的小狗的名字给自己的发明命名哦!这是你的权利!
Python语言虽然就这么诞生了,可是为什么会受到这么多人的喜爱呢?这就要谈到Python语言的特点了。
二、Python语言的特点
正如前文所述,“龟叔”发明Python语言的初衷就是觉得现有的编程语言太复杂,难学又难用,那么他肯定不会再发明一门这样的编程语言来。龟叔设计Python语言的哲学可以jxmo“优雅”、“明确”、“简单”三个要点。因此,Python自打被创造时起就被打上了“简单”的烙印。其它编程语言几百行写的程序,用Python可能只需要几十行就完成了,是不是很棒?
简单不是编程语言唯一的衡量指标,毕竟编程是要解决问题的。Python再简单,也不可能比Scratch更简单吧?但Scratch毕竟是用来学习和训练的,Python可不一样,Python是功能非常强大的编程语言,从最基本的办公、娱乐到当前最流行的大数据、人工智能,Python样样精通!
给你一段代码感受一下Python的强大。
它的代码是这样的:
from turtle import *
from random import *
from math import *
def tree(n, l):
pd() # 下笔
# 阴影效果
t = cos(radians(heading() + 45)) / 8 + 0.25
pencolor(t, t, t)
pensize(n / 3)
forward(l) # 画树枝
if n > 0:
b = random() * 15 + 10 # 右分支偏转角度
c = random() * 15 + 10 # 左分支偏转角度
d = l * (random() * 0.25 + 0.7) # 下一个分支的长度
# 右转一定角度,画右分支
right(b)
tree(n - 1, d)
# 左转一定角度,画左分支
left(b + c)
tree(n - 1, d)
# 转回来
right(c)
else:
# 画叶子
right(90)
n = cos(radians(heading() - 45)) / 4 + 0.5
pencolor(n, n*0.8, n*0.8)
circle(3)
left(90)
# 添加0.3倍的飘落叶子
if(random() > 0.7):
pu()
# 飘落
t = heading()
an = -40 + random()*40
setheading(an)
dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
forward(dis)
setheading(t)
# 画叶子
pd()
right(90)
n = cos(radians(heading() - 45)) / 4 + 0.5
pencolor(n*0.5+0.5, 0.4+n*0.4, 0.4+n*0.4)
circle(2)
left(90)
pu()
#返回
t = heading()
setheading(an)
backward(dis)
setheading(t)
pu()
backward(l)# 退回
bgcolor(0.5, 0.5, 0.5) # 背景色
ht() # 隐藏turtle
speed(0) # 速度,1-10渐进,0最快
tracer(0, 0)
pu() # 抬笔
backward(100)
left(90) # 左转90度
pu() # 抬笔
backward(300) # 后退300
tree(12, 100) # 递归7层
done()
这短短几十行代码,就画出了像真实画家的作品一样的效果!其实,它就是利用了Python自己带的一个Turtle模块(就像Scratch的画笔扩展,我们很快就会讲到它的用法),通过基本的调用画出来的。当然,现在让你做出这样的程序还有难度,但只要假以时日,你掌握了Python的精髓,一定能做出更好的效果来!这还只是Python的用途之一呢。这里不能不提一下,Python被人称为“胶水”语言,就是因为全世界的Python爱好者们,为Python开发了几十万种功能强大的扩展模块,在很多开发中,比如画图、计算等,你不需要自己去实现,只要像使用Scratch的扩展一样,加载(import)它,使用它提供的指令,就能快速实现你想要的效果!这也是Python“简单”的原因之一,毕竟有那么多高手为你提供了强大的扩展模块支持啊!使用Python这个“胶水”,你可以把高手们提供的模块“粘贴”在一起,开发出功能强大的程序来。
当然,Python也有一些自己的缺点,它是一种高级的、面向对象的、动态的解释型语言(这几个词语不好记,你只需要了解即可)。这类语言的特点是灵活易用,但是相对一些比较“低级”的语言比如C语言来说,它的运行效率没有那么高。当然,在我们这个阶段,还远远不会体会到这种性能上的差异。你只需要学习就好了!
说到这里,你是否已经跃跃欲试了?让我们开始吧!
三、写出第一个Python程序
Python很受欢迎,因此用来开发Python的工具也是非常多样化的。比较著名的Python开发工具有:
- Python自带的解释器Idle
- 微软公司开发的VSCode
- PyCharm
- Spider
上面这些工具都是很强大的集成开发环境(Integrated Development Environments,IDE),对于我们这个阶段来说,不需要用高射炮打蚊子,这里我向大家推荐编程猫提供的“海龟编辑器”,它安装起来非常简单,你可以不用再关心复杂的安装配置过程,把精力集中在Python学习本身。
访问编程猫的官方网站的海龟编辑器下载页面:https://python.codemao.cn/,如下图所示:
你可以不下载,直接用网页版在线编辑Python程序。但是下载安装会更方便一些,因此点击【下载客户端】,它会根据你的系统选择相应的安装程序,下载完成后安装即可。安装完成第一次运行时会有简单的配置过程,你需要按照提示操作,让它完成初始化。这个过程非常简单,最终你会看到如下的界面:
这就是我们以后用来编程的界面,是不是相当简洁?就像个记事本一样。那我们平时用Scratch编程时那些积木哪去了?没有积木怎么编程呢?
别急,你需要适应一下Python的编程方式,Python是用“代码”而不是“图形”编程的。刚开始写“代码”的时候,你会觉得不习惯,等你适应之后,你会发现它比Scratch的图形化要方便多了。
现在,请你在海龟编辑器的主界面中输入以下代码:
print('Hello,world!')
这个时候,你的海龟编辑器界面应该是这样的(中间红色方框内是我们编写的代码):
先不要管这行代码是什么意思,现在,用鼠标点击海龟编辑器右下角的按钮“运行”——
窗口下半部分出现了黑色的“控制台”,控制台里面显示着你在代码中写的“Hello,world!”,以及“程序运行结束”的字样。
如果你得到了这一步结果,恭喜,你的第一个Python程序写好了!
就这?这就是Python编程吗?它是什么意思?它能做什么?为什么要写“Hello,world!”而不是“Hello,kitty!”
我知道你有一大堆的问题需要解释,让我们下节课再讲。
四、课后作业
按照本节课第三部分的内容,完成海龟编辑器的下载安装,并编写你的第一个Python程序 “Hello,world!”。
”Python和我们所学的Scratch一样,也是一种编程语言。“那么它叫啥子语言?