从零开始学习PYTHON3讲义(一)

认识Python

课程名称 从零开始PYTHON3
课程长度 15讲
适用年龄 15-20岁(初三-大一)
本讲名称 认识Python
时长 90分钟
教学内容分析
Python是时下最流行的计算机编程语言之一。本课程设计目标是面向“第一次学习编程的信息技术零基础用户”,课程通过平缓的学习曲线和实用的案例引导,较为轻松愉悦的完成学习。
本讲是课程的第一讲,力求使用通俗的语言让学生了解Python的优势、应用,了解Python语言的价值,激发学习的兴趣。
教学目标及重(难)点
本讲课程试图达到以下目标:
1.理解Python语言的功能作用;
2.通过演示和动手实操让学生近距离接触Python,激发学生对于Python学习的兴趣;
3.让学生能在讲义的指导下,自主完成Python编程环境的安装,为今后的学习搭建一个练习的环境。
学习者特征分析
中学阶段的学生好奇心强,思维活跃,乐于接受新鲜事物,但是注意力集中时间有限,本期课程通过案例演示和动手操作提高课程的趣味性,抓住学生的兴趣和专注力,为他们学习编程建立积极的心理预期。
第一节课,可能有的学生完全不了解编程,有的学生只学过图形化编程,本课将为他们建立python语言相关的概念基础和思维习惯。
教学环境资源
硬件:电脑(系统要求:Win7及以上、Linux或者Mac电脑;建议8G以上内存,100G以上硬盘),也可使用树莓派3代B+以上型号标准配置。
软件:Python官方发布的软件版本3.6或者更高

《从零开始PYTHON3》第一讲

title Python是一种计算机程序设计语言,第一个公开版本发行于1991年。
Python是纯粹的自由软件。语言免费使用,甚至全部源代码也免费开放。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面)。然后对其中有特别要求的部分,用更合适的语言改写。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

本课程定位于“零基础编程课”,也就是假定用户刚刚开始接触编程,而Python则是学习者的第一门编程语言。
因此本课程在讲解Python的同时,引入了较多的案例和编程必备的常识性基础知识,同时采用大量的讲解和穿插的练习让学习者跟得上、不掉队。

课程试图达到:
在完成课程的学习之后,动手能力强的学生可以在互联网搜索引擎的帮助下,利用Python解决日常学习、工作中碰到的问题,可以编写实用的小工具。
大多数学生能够掌握Python的基本功能和必要知识体系,了解编程的必备知识,后续在搜索引擎及课程讲义的帮助下有能力继续自学并最终把Python当做自己日常学习、生活中的重要工具。完成把计算机从娱乐工具到实用工具的转变。


为什么要学习Python

在1946年第一台计算机诞生时,仿照自动提花织布机和自动钢琴的控制方式,诞生了最早的编程语言。时至今日,在电脑领域已发明了上千种不同的编程语言,而且每年仍有新的编程语言诞生。

评价一门编程语言的优秀,有很多个维度。比如是否运行速度快?是否简单易学?是否容易使用?是否功能强大?

在这些公认的评价中,Python是整体均衡而又功能强大的语言,很多显著的特征使得Python从众多的编程语言中脱颖而出成为最受欢迎的编程语言之一。

  • Python语言语法简单,只有很有限的一些规则。语言本身用到的英文单词命令,包含像加减乘除这样的运算符在内总共不超过50个,常用的不超过20个,非常易学易用。
  • Python语言所编写的程序代码非常规范易读,便于维护和记忆,能培养学习者的良好编程习惯。
  • Python不仅适合信息技术专业使用,在学术界、工程界也是广泛流行的程序语言。
  • Python容易同各种编程语言接口,有强大而广泛的开发社区支持,因此扩展库的来源丰富,也被称为胶水语言。在扩展库的帮助下几乎能解决所有遇到的问题。(“库”是软件业很常用的一个概念,一般是指一组特别定制可重复使用的软件集合。)
  • Python的使用全部免费,本身还开放源代码,学习和使用的成本低。而且学习的深度可以随心所欲的从浅尝辄止到定制开发。
  • 有良好的模块化支持,适应从小功能程序到庞大规模系统的开发。
  • 跨平台,Windows/Linux/Mac甚至手机都有Python的身影。不仅语言本身跨平台,大多的扩展库也支持跨平台,比很多常见的所谓跨平台语言在多种平台上支持更好。
  • 目前多个有影响力的人工智能开发平台都选用Python作为主要支持的开发语言。作为未来最有潜力的应用方向,Python的学习也成为人工智能学习的先决条件。

TIOBE公司是世界著名的软件质量检测公司。其发布的编程语言占有率排行是最权威的编程语言受欢迎程度晴雨表。 以2018年6月份发布的编程语言排行榜为例,除了Python语言外,java/c/c++/c#/VB/PHP也位于排行榜前列,这些同样也是非常优秀的编程语言。但是相比较而言,这些语言或者学习难度大,或者使用难度大,或者只适合于某一方面的应用。 每种语言都有自己独特、优秀的地方,关键要用在合适的场景中。


Python能够做什么

首先同样作为一门通用的计算机编程语言,Python也能够完成其它语言通常的通用编程任务。换言之,通常碰到需要编程的任务,如果不能迅速的看出来任务的特定限制性需求,那使用Python一般都没有问题。

然后,作为一门解释执行的编程语言,良好的交互命令行方式,也帮助Python在科学计算、统计和科技图表绘制方面占领了很大的市场。而原本完成类似的功能要使用昂贵的商业软件或者在传统编程语言的基础上增加大量的商业扩展库。 Figure_1 Python进行互联网编程也非常易学易用,可以完成从网站编程到手机App后端的各种支持,单纯从开发效率来讲基本稳居所有编程语言的前列。

Python开发速度快的特性,也让很多游戏的开发者青睐Python。或者使用Python建立、验证游戏原型;或者在基础游戏系统完成后,使用Python作为场景、任务、活动的控制脚本。 gamedemo1 因为Python语言的“胶水”特性,需要沟通、控制多种不同品牌、不同厂商的外设、传感器的情形下,Python在物联网、机器人控制、自动化控制方面也出现了很广泛的应用,Python在工程界的普及也对此起到了推波助澜的效果。

通常在科学界,大量的数据收集、统计、分析必不可少,Python丰富的扩展库可以让这个过程变得轻松而高效。因此科学家在模型设计、算法验证方面也离不了Python的帮助。人工智能的各种神经网络和算法,其实就起源于这个研究过程。

最后,除了Windows, Python2已经内置于各流行的Linux/Mac操作系统,而Linux又占据当前互联网服务器超过90%的份额、和嵌入设备超过80%的份额。所以可以看到大量的自动化运维工具,都是使用Python开发的。

有两个用Python编写的小游戏,可用于演示Python在通用及游戏编程方面的能力。
如果是在课堂,可以由辅导老师协助你运行演示。如果是阅读中,可以稍后在本讲的靠后面部分有讲解帮助你自己动手完成这个过程。
你能看到很短的代码,就可以实现传统编程语言需要大量工作才能完成的效果。
https://www.raywenderlich.com/24252/beginning-game-programming-for-teens-with-python
https://github.com/renfredxh/pylletTown
游戏的程序源码可以从上述两个网址下载。这两个游戏均需要第三方扩展库pygame的帮助,本讲后面也会介绍其安装方法。
本课程后续内容,还会摘要介绍这两个游戏中用到的编程方法和技巧。


Python2 VS Python3

Python的读音是“派森”(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是荷兰人Guido van Rossum(音译:圭多)在1989年圣诞节期间为了打发无聊的单身生活而开发的一种编程语言。语言的名称来自当时火爆的英国幽默剧团“Monty Python”。第一个版本运行在苹果的Mac电脑上,才开始只有很简单的功能,也只在Guido的小范围朋友圈流传试用。经过大量的拓展和改进后,在1991年第一次对外界正式的发布。

Python发布后,快速的发展流行,在Linux中有很多的系统级应用都使用了Python来开发,比如最流行的Linux模块管理工具APT,以至于很快多个发行版本的Linux中都内置了Pyhton2的程序包。

随着流传范围的进一步扩大,Python早期开发中的一些设计缺陷和规范性不足问题也越来越明显。于是Python项目组最终在2009年推出了完全重新开发的Python3系统。

Python3在多个方面做了大量改进,具有多项的新特征,是一个令人兴奋的升级。但也带来了同Python2兼容性上的分歧。也就是说,比如希望完成某项功能,我们到互联网搜索已有程序,如果下载的是Python2所编写的程序,那可能无法直接运行在Python3的环境当中。并且因为Python2已经非常成功,大量的第三方扩展库和使用Python2开发的工具包,迟迟没有完成向Pyhton3的迁移。给人Python3反而不如Python2强大的感觉。这样的分歧不断增加,最终形成了Python2 / Python3看上去已经不是版本的差别,而成为了两种不同的语言,两者分别在自己的基础上维护、完善、升级,这样持续并行发展了近10年。

这使得许多人在开始学习Python的时候,都纠结于究竟是学习Python2还是学习Python3。作为将用户定位于学习第一门编程语言的课程,我们推荐大家使用Python3作为入门语言,原因如下:

  • Python3中对于各国文字一视同仁,中文无需特殊处理。而Python2中需要单独为中文增加大量操作。
  • 重新设计的Python3在语法和逻辑上更严谨、规范,也更统一,降低了学习难度,规范了初学者的编程习惯,进而减少了出现低级程序错误的可能性。
  • 近10年的发展,主要的第三方扩展库,都已经支持了Python3系统,足以满足使用要求。
  • Python的官方团队,已经声明计划在2020年停止对于Python2的支持。

其实学习编程,更多的是学习编程的思想、算法和解决问题的方法,语言本身往往并不那么重要。从事信息技术专业的工程师,为了完成各种各样的任务,需要学习多种编程语言。而Python2同Python3也并没有想象中那么大的区别。完成Python3的学习之后,如果有需要,只要很少的针对性练习,就可以通行于Python2及Python3两种环境之中。


Python的安装

本节后面的讲述包括了Linux/macOS/Windows三种系统的安装、使用方法,通常你自己的电脑都是只安装某确定的一种操作系统,所以后面的内容,只要熟悉你自己使用的系统就好。其它的介绍仅供参考。但是我坚持介绍多种系统安装、使用方法的目的并不仅于此,而是希望你跟Python的选择一样,从一开始就持有跨平台的思想,不让自己受限于一种操作系统。

虽然上一节已经说过了,本课程会以Python3作为我们的学习主体。但还是希望你能记住,在Linux / macOS系统中,Python2已经内置,直接在命令行使用就有了:

$ python
Python 2.7.15 (default, Jun 18 2018, 22:14:28) 
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

(上面第一行的$符号,是Linux系统的命令提示符,是系统自动给出的,不需要你输入。)
所说的“命令行”,是相对于“图形界面”所说的。平常我们用来操作的界面,比如下图所示意的网页浏览器,这都是“图形界面”,我们已经熟悉了这一切。相比较上面这幅由大量文字组成的“黑盒子”,图形界面肯定要更赏心悦目。但作为进入编程世界的第一个关口,逐渐熟悉由大量文字来互相传递信息的“命令行”界面,可能会你是碰到的第一个障碍。

在Linux安装Python3

Linux有很多个发行版本,以Ubuntu为例,安装Python3只需要一条命令:

sudo apt install python3

之后还需要安装python3的包管理模块(包管理后面会详细讲述):

sudo apt install python3-pip

安装完成后,前面说过了,系统原有已经内置了python2系统,使用“python”命令启动。而新安装的python3将是使用“python3”来启动,两者互相独立,互不干扰。附加的包管理工具启动则是“pip3”。后面我们再说如何用python3的包管理工具安装扩展的软件包(也就是扩展库)。
不同的Linux版本,安装Python3的方法都是不同的,这种现象也被称为“方言化”Linux。对于初学者来讲,建议你使用Ubuntu就够了。或者,查查相关资料,以及必要的时候到互联网上搜一搜解决方案。
好在Python在慢慢的改变这种“方言化”,比如同样的Python3程序,在各个操作系统运行的都很好,并且结果一致性很高。

在macOS安装Python3

macOS系统安装Python3分两步,第一步是先安装macOS的免费软件管理工具Homebrew,网站地址:https://brew.sh,请参考下面的截图,红框的部分,拷贝安装命令到macOS命令行来执行,会自动安装完成macOS的免费软件管理工具。 macOS系统的“命令行”可以在系统的程序启动板打开,图标如下图所示的样子: 有了Homebrew工具,第二步正式安装Python3就简单了,只需要执行一条命令就同时安装了Python3及其软件包管理工具pip3:

brew install python3

python3和pip3的执行方法,跟Linux是相同的。事实上同样作为类似Unix的系统,macOS跟Linux在很多方面互相都很像。

在Windows安装Python3

在Windows安装Python3的确是最麻烦,所以我留在最后说。不过好在全部可以使用图形界面,作为尚未接受冷酷的“命令行”环境的你来说,这是个宝贵的过渡期。当然也许间接的会让你体会,除了玩游戏,很多时候图形界面的操作并不一定简单。

首先要确认Windows的版本和类型。使用鼠标右键点击“我的电脑”(在Windows中,我的电脑被改为了“此电脑”),随后在弹出的菜单中点击“属性”。如截图中所示,请确认你的Windows版本在Win7以上,操作系统的位长只有两种可能,32位或者64位,对应需要下载不同版本的Python3安装包。 Python官网上,Windows版本软件的下载链接在这里:https://www.python.org/downloads/windows/,下载的时候通常不要下载最新版本的安装包,因为会有不稳定的情况存在。最重要的,很多第三方扩展包还来不及升级适应新版本的Python系统,从而可能会让某些学习无法进行。 在下载包中,Windows x86是32位系统使用的安装包,Windows x86-64则是64位系统使用的安装包,请对应上面查询的自己电脑的类型来下载。

安装包也分为三种情况,web-based installer是指很小的一个下载包,但是在每次安装过程中,会从网上下载真正的Python3软件来安装。速度不一定快。executable installer是正式的独立安装包,我推荐你下载这一个。zip file是一个压缩包,下载后还要解压再安装,对电脑不足够熟悉不建议你选择这个。

运行安装包之后,大多数用户勾选上“Add Python3.6 to PATH”,随后选择Install Now随后全部使用默认安装就好,大多的应用都是足够的。
因为我们的编程学习会涉比较广的方面,不像很多用户只进行某一确定领域的工作,所以建议你使用Customize Installation(定制安装)并且勾选上所有可能的选项来完成安装。直观起见,你可以参考下面截图中的注释:
上面的截图中,没有选择项的中间过程已经略去,最后这一张是安装成功的情况。比较重要的是,如果出现截图中下面部分虚线中的提示,请用鼠标点击,并输入管理员密码确认操作,这是关闭Windows所特有的路径长度的限制,这个限制将导致Python的某些功能不能正常工作。

Python3扩展包的安装

我们一再提到,Python的强大,很大程度上来自于多方贡献的扩展包,这些扩展包的数量如此巨大,以至于需要一个专门的软件来管理,进行安装、升级、删除等常见操作。这个工具就是“pip”,前面也提到过了。当然还有很多开发团队出品的Python扩展包管理工具,但从当前看都不如pip用户广泛,所以在这里我们只介绍pip。

比如我们前面两个演示的游戏,就用到了“pygame”这个扩展包。Linux/macOS系统在命令行使用pip安装pygame的方法如下:

sudo pip3 install pygame

Windows系统没有权限提升命令,所以首先要使用“管理员模式”执行命令行工具: 流程为:用鼠标点击开始菜单->Windows系统->命令提示符,这时候使用鼠标右键点击“命令提示符”->点击更多->点击以管理员身份运行,之后系统还会出现一个警告窗口,点击确认执行。
之后出现的命令提示符窗口,默认的路径是:C:Windows\System32>而不是平常出现的用户当前目录。这表示这个命令提示符窗口运行在管理员状态。接下来安装pygame扩展包的方法跟Linux/macOS是类似的:pip3 install pygame,因为Windows没有预先存在的Python2,所以实际上直接执行pip也是一样的。

运行已有的Python3程序

通常Linux/macOS用集成环境并不让人感觉方便,所以大多是直接在命令行执行Python程序。至于为什么会这样,如果你也使用Linux,用的多你就理解了。
用前面演示中的例子来说,执行已有程序一般是这样的(下面演示了两个程序的执行):

#运行bunny游戏
cd bunny
python3 bunny.py
#运行pylletTown游戏
cd pylletTown
python3 pylletTown.py

这里面用到了两个操作,“cd”是把当前的命令行工作目录变更到指定的目录,随后“python3”是执行python3软件,后面的“bunny.py”是由python3执行的,由python3语言所编写的游戏名称。

在Windows系统执行Python3同样可以使用命令行的方式,方法跟上面几乎相同。当然很多初学者还是愿意使用“图形界面”方式来执行。 在开始菜单寻找Python IDLE程序执行,这是Python官方提供的一个简易集成开发学习环境。在IDLE中,File菜单选择Open打开,可以通过图形化的方式,找到我们程序所在的文件夹,并选中要执行的程序:
打开后,能看到程序的源代码,这时候从Run菜单选择Run Module或者直接F5,就可以执行这个程序。 程序运行起来之后的样子,在前面的图片中已经有,这里就不再重复。
在上面的图片中,左上部分,Python 3.6.5 Shell的窗口,是Python的交互式环境,提供每输入一条命令,Python直接执行,并当场返回结果的效果。右下部分的窗口,看起来很像我们常用的Word文档编辑器,这个是Python程序编写所使用的空间,通常要编写完成一个完整的程序,才能正式的开始执行。 —

自己动手,试试海龟绘图

我们在后面的课程中会详细讲到海龟绘图。这里只是动手操作来试一试,让你对Python有个更直观的感受,不用去理会绘图程序中那么多陌生的单词究竟是什么意思。

首先还是在IDLE环境中,从File菜单选择Open打开已有的程序文件,turtle1.py源代码已经包含在课程的资源包中了。 fileOpen1 相信前面的操作你已经注意到了,在不同的操作系统中执行同样的操作,界面显示出来可能并不一样,这些也不用纠结,关键是理解这些操作的功能是什么,界面只是帮助功能的实现。相信我,只要真的是想学编程,早晚有一天,你会更喜欢命令行那个丑陋的“黑盒子”。

打开的程序会像下面的图的样子: turtle1 接着按F5来执行这个程序(从菜单选择Run Module是一样的): turtle2 看,这就是小海龟绘制的图形。继续试一试,我们来简单的改个参数:

#海龟绘图演示

#引入海龟绘图库
import turtle

#建立一支笔(一只海龟)
t = turtle.Pen()
for x in range(100):
    #向前走x步
    t.forward(x)
    #左转90度
    t.left(90)
#画完,收工
turtle.done()

上面的程序中,第12行是控制小海龟每次转向的角度,我们把这个参数90,修改成70。修改完成后,要在IDLE的菜单中选择File->Save存盘,然后按F5再执行一次看看效果: turtle3


本讲小结

本讲主要讲述四方面的内容,

  1. Python语法简单、方便易用、语言规范、功能强大,学习Python不仅适合立志从事信息技术专业工作的同学,在日常的学习、生活中也能起到很大的作用。

  2. Python的多种特性让Python有很广泛的应用场景,在很多领域中都有Python的身影。

  3. Python3是Python2的升级版本,是Python语言的发展方向,我们会以Python3作为学习的主要路径。

  4. Python的安装很简单,每位同学一定要在自己的电脑上安装好Python的学习环境,编程是需要不断的动手练习才能掌握一门技术。

为了让大家能有更全面的体验,而且毕竟初次涉及编程方面的知识。本讲的内容涉及到了很多新的概念,并不容易马上学会或者迅速理解,我们在后续的课程中还会更详细的讲到,并且会不断的重复加强。所以如果还有很多疑问,不用着急,从第二讲开始,才是真正的编程知识开始。


版权声明

本讲义文稿为作者及寓乐世界教育科技公司共同所有。涉及范围包含且不限于文字、图片、程序源码,所有内容禁止未经书面授权的转载和使用。