Python 3 程序设计(txt+pdf+epub+mobi电子书下载)


发布时间:2021-08-01 13:28:22

点击下载

作者:唐永华 刘德山 李玲

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Python 3 程序设计

Python 3 程序设计试读:

前言

近年来,人工智能(AI)已经上升为国家战略。Python丰富的AI库、机器学习库、自然语言和文本处理库,使其成为最适用于人工智能的语言之一。此外,Python还可应用于数据分析、组件集成、图像处理、科学计算等众多领域。

为适应跨界创新的需求,不同层次、不同专业的读者迫切需要一种可以更多专注于解决的问题,而不必更多考虑细节的计算机语言,让计算机语言回归服务的功能,Python就是最佳的选择。

Python以其“简单”“优雅”“明确”“易学”的特性成为学习编程的入门级语言。超过十几万的第三方库,形成了Python的“计算生态”,推动了Python的发展。

Python在业界得到了广泛的应用,几乎所有大中型互联网企业都在使用Python,如YouTube、豆瓣、知乎、Google、Yahoo、Facebook、百度、腾讯、美团等。

面对诸多的应用需求,以及Python适合于所有专业学生学习的特点,2018年,教育部将Python纳入了全国计算机等级考试范围,相信在未来的几年里,Python将得到更好的普及与发展。

编者从教学实践中精选了大量的示例,让读者能全面地了解和学习这门“简单”“易学”的语言。编写本书的各位教师曾主讲C、Java、Python等课程,他们从“实用、易用、有效”的角度组织内容,以应用为核心展开,力求以知识的最小集来实现最大范围的应用。

本书主要具有以下特色。(1)内容重点突出。在保证内容科学、完整的前提下,由浅入深地安排章节次序。考虑到Python语言的应用特色,与其他程序设计教材相比,本书更强调应用思维。(2)案例资源丰富。全书设计了240个示例,内容基本覆盖Python的所有知识要点。还提供相应的教学课件、程序源码,有需要的读者可前往人邮教育社区(www.ryjiaoyu.com)下载。(3)在教材内容上,协调了与全国计算机等级考试和Python应用需求的关系。书中的知识点基本覆盖了等级考试的核心内容,并删减了部分使用频率较低的内容。

本书建议教学的组织形式是“示例—分析—练习—总结”。从应用的角度介绍语言,通过示例来说明编程的方法和过程。建议授课48学时,第11~14章的内容可根据需要选讲,书中标注*号的章节可以略讲,这部分内容不影响Python的学习和参加全国计算机等级考试。

本书由唐永华、刘德山、李玲主编,若书中存在疏漏和不足之处,恳请读者批评指正。

48学时不长,稍纵即逝;48学时不短,您可以学习和发挥Python的“神奇”所在。

注意,软件版本与下载页面在不断更新,读者打开的下载界面和看到的软件可下载版本可能与本书的不一样,但下载与安装的方法类似。编者2018年12月第1章 初识Python

Python是一种面向对象的、解释型的计算机编程语言,可应用于Web开发、科学计算、游戏程序设计、图形用户界面等领域。那么,什么是编程语言?解释型语言有什么特点?Python语言有什么特点?本章将帮助我们认识Python,了解Python程序的开发环境,理解Python程序的执行过程。1.1 程序设计语言1.1.1 程序设计语言的概念

让计算机按照用户的目的完成相应的操作,需要使用程序设计语言来编程。程序设计语言也称计算机语言,是用于描述计算机所执行的操作的语言。从计算机产生到现在,作为软件开发工具的程序设计语言经历了机器语言、汇编语言、高级语言等几个阶段。(1)机器语言

机器语言是采用计算机指令格式并以二进制编码表达各种操作的语言。计算机能够直接理解和执行机器语言程序。

机器语言能够被计算机直接识别,它执行速度快,占用存储空间小,但难读、难记,编程难度大,调试修改麻烦,而且不同型号的计算机具有不同的机器指令系统。(2)汇编语言

汇编语言是一种符号语言,它用助记符来表达指令功能。

汇编语言程序较机器语言程序易读、易写,并保持了机器语言执行速度快、占用存储空间小的优点。汇编语言的语句功能简单,但程序的编写较复杂,而且程序难以移植,因为汇编语言和机器语言都是面向机器的语言,都是为特定的计算机系统而设计的。汇编语言程序不能被计算机直接识别和执行,需要由一种起翻译作用的程序(称为汇编程序),将其翻译成机器语言程序(称为目标程序),计算机才能执行,这一翻译过程称之为“汇编”。

机器语言和汇编语言都被称为低级语言。(3)高级语言

高级语言是面向问题的语言,它比较接近于人类的自然语言。因为高级语言是与计算机结构无关的程序设计语言,它具有更强的表达能力,因此,可以方便地表示数据的运算和程序控制结构,能更有效地描述各种算法,使用户容易掌握。

Python是一种高级语言,例如,计算5+11的Python语言程序如下。>>> print(5+11) 16 #运算结果

用高级语言编写的程序(称为源程序)并不能被计算机直接识别和执行,需要经过翻译程序翻译成机器语言程序后才能执行,高级语言的翻译程序有编译程序和解释程序两种。下面分别介绍编译程序和解释程序。1.1.2 编译与解释

不同的高级语言,计算机程序的执行方式是不同的。这里所说的执行方式是指计算机执行一个程序的过程。按照计算机程序的执行方式,可以将高级语言分成静态语言和脚本语言两类。静态语言采用编译执行的方式,脚本语言采用解释执行的方式。无论哪种执行方式,用户执行程序的方法都是一致的,例如,都可以通过鼠标双击执行一个程序。(1)编译

编译是将源代码转换成目标代码的过程。源代码是计算机高级语言的代码,而目标代码则是机器语言的代码。执行编译的计算机程序称为编译器(Compiler)。(2)解释

解释是将源代码逐条转换成目标代码,同时逐条运行目标代码的过程。执行解释的计算机程序称为解释器(Interpreter)。

编译和解释的区别:编译是一次性地翻译,程序被编译后,运行时就不再需要源代码了;解释则是在每次程序运行时都需要解释器和源代码。这两者的区别类似于外语资料的笔译和实时的同声传译。

编译的过程只进行一次,所以编译过程的速度并不是关键,关键是生成目标代码的执行速度。因此,编译器一般都会集成尽可能多的优化技术,使生成的目标代码有更好的执行效率;而解释器反而因为执行速度的原因不会集成太多的优化技术。1.2 Python语言1.2.1 Python的历史

Python的作者Guido van Rossum是荷兰人。Guido理想中的计算机语言,是能够方便调用计算机的各项功能,如打印、绘图、语音等,而且程序可以轻松地进行编辑与运行,适合所有人学习和使用。1989年,Guido开始编写这种理想的计算机语言的脚本解释程序,并将其命名为Python。Python语言的目标是成为功能全面、易学易用、可拓展的语言。

第一个Python的公开版本于1991年发布。它是用C语言实现的,能够调用C语言的库文件,具有类、函数、异常处理等功能,包含表和词典等核心数据类型,以模块为基础的拓展系统。

之后,在Python的发展过程中,形成了Python 2.x和Python 3.x两个不同系列的版本,这两个版本之间不兼容。为了满足不同Python用户的需求,目前是Python 2.x和Python 3.x两个版本并存。Python 2.x的最高版本是Python 2.7,Python官网宣布,直到2020年,都不再为Python 2.x发布新的版本。Python 3.x是从2008年开始发布的,本书中的程序是在Python 3.6版本下实现的。

存在Python 2.x和Python 3.x两个不同版本的原因是,Python 3.0发布时,就不支持Python 2.0的版本,但Python 2.0拥有大量用户,这些用户无法正常升级使用新版本,所以之后才发布了一个Python 2.7的过渡版本,并且Python 2.7将会被支持到2020年。1.2.2 Python的特点

Python是目前最流行且发展最迅速的计算机语言,它具有如下几个特点。(1)简单、易学

Python以“简单”“易学”的特性成为编程的入门语言。一个良好的Python程序像一篇英文文档,非常接近于人的自然语言,用户在应用Python的过程中,可以更多地专注于解决的问题,而不必考虑计算机语言的细节,从而回归语言的服务功能。(2)开源,拥有众多的开发群体

用户可以查看Python源代码,研究其代码细节或进行二次开发。用户不需要为使用Python支付费用,也不涉及版权问题。因为开源,越来越多的优秀程序员加入到Python开发中,Python的功能也会愈加丰富和完善。(3)Python是解释型语言

使用Python语言编写的程序可以直接从源代码运行。在计算机内部,Python解释器先把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。Python是解释型语言,用户可以将一些代码行在交互方式下直接测试执行,使得Python的学习更加简单。(4)良好的跨平台性和可移植性

Python的开源本质,决定了它可以被移植到多个平台。如果用户的Python程序使用了依赖于系统的特性,Python程序可能需要修改与平台相关的代码。Python的应用平台包括Linux、Windows、Macintosh、Solaris、OS/2、FreeBSD、Amiga、Android、iOS等。(5)面向对象

Python既支持面向过程的编程,也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言(如C++和Java)相比,Python以一种非常强大又简单的方式实现面向对象编程,为大型程序的开发提供了方便。(6)可扩展性和丰富的第三方库

Python中可以运行C/C++编写的程序,以便某段关键代码可以运行得更快或者希望某些算法不公开。用户也可以把Python程序嵌入到C/C++程序中,提高C/C++程序的脚本能力,使其具有良好的可扩展性。

Python还有功能强大的开发库。Python标准库可以处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、HTML、WAV文件、密码系统、GUI(图形用户界面)和其他与系统有关的操作。除了这些标准库,它还有大量高质量的第三方库,如wxPython、Twisted和Python图像库等。1.2.3 Python的应用

Python的应用领域覆盖了Web开发、科学运算、系统运维、GUI编程、数据库编程等诸多方面。(1)Web开发

Python包含标准的Internet模块,可用于实现网络通信及应用。Python的第三方框架包括Django、Web2py、Zope等,可以让程序员方便地开发Web应用程序。典型的Web应用,如Google爬虫、Google广告、世界上最大的视频网站YouTube、豆瓣、知乎等都是使用Python开发的。(2)科学运算

Python广泛应用于人工智能与深度学习领域,典型的第三方库包括NumPy、SciPy、Matplotlib等。随着众多程序库的开发,使得Python越来越适合于进行科学计算、绘制高质量的2D和3D图像。例如,美国航天局(NASA)多使用Python进行数据分析和运算。(3)云计算

Python是云计算方面应用最广的语言,其典型应用OpenStack就是一个开源的云计算管理平台项目。(4)系统运维

Python是运维人员必备的语言。Python标准库包含多个调用操作系统功能的库。通过第三方软件包pywin32,Python能够访问Windows API。使用Ironpython,Python能够直接调用Net Framework。一般而言,使用Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性等方面都优于普通的Shell脚本。(5)GUI编程

Python可以非常简单、快捷地实现GUI程序。Python内置了Tkinter的标准面向对象接口TkGUIAPI,可以非常方便地开发图形应用程序,还可以使用其他一些扩展包(如WxPython、PyQT、Dabo等)在Python中创建GUI应用。1.3 Python的开发环境1.3.1 下载和安装Python

Python是一个轻量级的软件,读者可以在其官网下载Python安装程序(软件版本与下载页面在不断更新,读者打开的下载界面和看到的软件可下载版本可能会与本书的不一样,但下载与安装的方法类似)。

Python开发包下载页面如图1-1所示,本书是在Windows 10操作系统下,应用Python 3.6.5版,读者也可以下载Linux、iOS、Android等操作系统的Python开发包,或选择其他的Python版本。图1-1 Python官网下载页面

双击打开下载的Python安装程序Python 3.6.5.exe,将启动安装向导,接下来用户按提示操作即可。在图1-2所示的安装程序页面中,选中“Add Python 3.6 to PATH”复选框,将Python的可执行文件路径添加到Windows操作系统的环境变量PATH中,以方便在将来的开发中启动各种Python工具。图1-2 安装程序界面

安装成功后的界面如图1-3所示,并且会在Windows系统的“开始”菜单中显示图1-4所示的Python命令。这些命令的具体含义如下。图1-3 Python安装成功界面图1-4 “开始”菜单中的Python命令●“ IDLE (Python 3.6 32-bit)”:启动Python自带的集成开发环境IDLE。●“ Python 3.6 (32-bit)”:将以命令行的方式启动Python的解释器。●“ Python 3.6 Manuals (32-bit)”:打开Python的帮助文档。●“ Python 3.6 Module Docs (32-bit)”:将以内置服务器的方式打开Python模块的帮助文档。

用户在学习Python的过程中,通常使用的是Python自带的集成开发环境IDLE。

在Windows 10操作系统下,Python默认的安装路径是C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32,如果用户想要自定义Python解释器的安装路径,可以在图1-2中选中“Customize installation”选项,并选择需要安装的部件。1.3.2 内置的IDLE开发环境

Python是一种脚本语言,开发Python程序首先要在文本编辑工具中书写Python程序,然后由Python解释器执行。用户选择的编辑工具可以是记事本、Notepad+、Editplus等。Python开发包自带的编辑器IDLE是一个集成开发环境(Integrated Development Environment,IDE),其启动文件是idle.bat,位于安装目录的Lib\idlelib文件夹下。用户可以在“开始”菜单的“所有程序”中选择Python 3.6的IDLE(Python 3.6 32-bit)命令,即可打开IDLE窗口,如图1-5所示。图1-5 IDLE窗口

在IDLE环境下,编写和运行Python程序(也称Python脚本)的主要操作如下。(1)新建Python程序

在IDLE窗口中依次选择[File]/[New File]命令,或按Ctrl+N组合键,即可新建Python的脚本程序,窗口的标题栏会显示程序名称,初始的文件名为Untitled,表示Python程序还没有保存。(2)保存Python程序

在IDLE窗口中依次选择[File]/[Save File]命令,或按Crl+S组合键,即可保存Python程序。如果是第一次保存,会弹出“保存文件”对话框,要求用户输入要保存的文件名。(3)打开Python程序

在IDLE窗口中依次选择[File]/[Open File]命令,或按Ctrl+O组合键,将会弹出“打开文件”对话框,要求用户选择要打开的Python文件名。(4)运行Python程序

在IDLE窗口中依次选择[Run]/[Run Module]命令,或按下F5键,即可在IDLE中运行当前的Python程序。

如果程序中存在语法错误,则会弹出提示框“invalid syntax”,并且会有一个浅红色方块定位在错误处。(5)语法高亮

IDLE支持Python的语法高亮,即IDLE能够以彩色标识出Python语言的关键字,提醒开发

人员该词的特殊作用。例如,注释以红色显示,关键字以紫色显示,字符串显示为绿色。(6)常用快捷键

IDLE支持撤销、全选、复制、粘贴、剪切等常用快捷键,使用IDLE的快捷键能显著提高编程速度和开发效率。IDLE的常用快捷键及其功能如表1.1所示。表1.1 IDLE的常用快捷键及其功能1.3.3 PyCharm集成开发环境

IDLE是Python开发包自带的集成开发环境,其功能相对简单;而PyCharm则是JetBrains公司开发的专业级的Python IDE,PyCharm具有典型IDE的多种功能,比如程序调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。

1. PyCharm的下载和安装

访问PyCharm的官方网址,进入PyCharm的下载页面,如图1-6所示(软件版本与下载页面在不断更新,读者打开的下载界面和看到的软件可下载版本可能会与本书的不一样,但下载与安装的方法类似)。图1-6 PyCharm的下载页面

用户可以根据自己的操作系统平台下载不同版本的PyCharm。

PyCharm Professional是需要付费的版本,它提供Python IDE的所有功能,除了支持Web开发,支持Django、Flask、Google App引擎、Pyramid和web2py等框架,还支持远程开发、Python分析器、数据库和SQL语句等。

PyCharm Community是轻量级的Python IDE,是一款免费和开源的版本,但它只支持Python开发,适合初学者使用。如果是开发Python的应用项目,则需要使用PyCharm Professional提供更为丰富的功能。

安装PyCharm的过程十分简单,用户只要按照安装向导的提示逐步安装即可,图1-7是安装过程中选择安装路径的界面。安装完成后的界面如图1-8所示。图1-7 选择PyCharm的安装路径图1-8 安装成功界面

2. 建立Python项目和文件

第一次启动PyCharm时,会显示若干初始化的提示信息,保持默认值即可。之后,进入创建项目的界面。如果不是第一次启动PyCharm,并且以前创建过Python项目,则Python项目会出现在图1-9所示的窗口中,其右侧3个选项的含义分别是“创建新项目”“打开已经存在的项目”“从版本控制中检测项目”。图1-9 创建Python项目界面(1)创建项目

选择“Create New Project”选项创建项目后,会出现选择项目存放路径界面,如图1-10所示。图1-10 选择新建项目的存放路径(2)新建文件

项目创建完成后,如果要在项目中创建Python文件,可选中项目名称,单击鼠标右键,在弹出的快捷菜单中选择[New]/[Python File]命令来新建文件,如图1-11所示。图1-11 在项目中建立Python文件(3)保存和运行文件

在程序编辑窗口输入代码后,可以保存文件,选择“Run”菜单中的命令可以运行程序。图1-12所示为一个完整的程序,使用“Run”菜单中的命令可以调试和运行程序。图1-12 运行程序文件1.4 Python程序的运行1.4.1 Python程序的运行原理

Python是一种脚本语言,编辑完成的源程序,也称源代码,可以直接运行。从计算机的角度看,Python程序的运行过程包含两个步骤:解释器将源代码翻译成字节码(即中间码),然后由虚拟机解释执行,如图1-13所示。图1-13 Python程序的运行原理

Python程序文件的扩展名通常为.py。在执行时,首先由Python解释器将.py文件中的源代码翻译成中间码,这个中间码是一个扩展名为.pyc的文件,再由Python虚拟机(Python Virtual Machine,PVM)逐条将中间码翻译成机器指令执行。

需要说明的是,.pyc文件保存在Python安装目录的__pycache__文件夹下,如果Python无法在用户的计算机上写入字节码,字节码文件将只在内存中生成,并在程序结束运行时自动丢弃。而主文件(直接执行的文件)因为只需要装载一次,并没有保存.pyc文件。当Python源文件用于import导入时,将会生成.pyc文件,并且在__pycache__文件夹下可以观察到该文件。

pyc文件可以重复使用,并且可以提高执行效率。1.4.2 建立和运行Python程序

前面提到的Python文件、Python程序、Python程序文件是同义的,都是指Python的程序,程序是由若干行代码组成的,通常完成一定的功能。

运行Python程序有两种方式:交互方式和文件方式。交互方式是指Python解释器即时响应并运行用户的程序代码,如果有输出,则显示结果。文件方式即编程方式,用户将Python代码写在程序文件中,然后启动Python解释器批量执行文件中的代码。交互方式一般用于调试少量代码,文件方式则是最常用的编程方式。多数计算机的编程语言只有文件执行方式,Python的交互模式为代码的易学、易理解提供了可能。下面在Python环境下,以求一组数中的最大值为例来说明两种方式的启动和执行方法。

1. Python交互执行方式

在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[Python 3.6(32-bit)]命令,启动Python交互式运行环境,逐行输入代码,每输入完一条语句并换行后,就直接交互执行,如图1-14所示。图1-14 在Python交互方式下执行代码

每行代码均以Enter键结束,之后立即执行。如果是打印语句则显示输出结果。

在>>>提示符后,输入exit()或者quit()可以退出Python的运行环境。

2. IDLE交互执行方式

前面已经介绍过,IDLE是Python内置的集成开发环境,在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[IDLE(Python 3.6 32-bit)]命令,启动IDLE交互方式,输入代码,实现求一组数据中最大值和最小值的程序,每输入一条语句后,即直接交互执行,如图1-15所示。图1-15 在IDLE交互方式下执行代码

比较Python交互方式和IDLE交互方式,可以看出,虽然代码执行的过程相似。但IDLE交互方式提供了更多快捷的操作方式,比Python交互方式使用起来更加方便。另外,上面两个例子中的数据分别用方括号[]和圆括号()标记,这是两种不同的组合数据类型,我们将在后续章节中详细介绍。

3. IDLE程序文件执行方式

在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[IDLE(Python 3.6 32-bit)]命令,启动IDLE,打开图1-15所示的IDLE窗口。

在IDLE窗口中,执行[File]/[New File]命令,或按快捷键Ctrl+N,打开一个程序编辑窗口,在其中输入程序代码,如图1-16所示。图1-16 在IDLE窗口中编写并运行程序

这个程序编辑窗口不是交互窗口,而是IDLE的集成开发环境,该环境具备Python语法高亮辅助的编辑器,可以进行代码的编辑。在其中输入Python程序后,保存程序为以.py为扩展名的文件,如program1.py,按快捷键F5或在菜单栏中选择[Run]/[Run Module]命令,将在IDLE环境中显示运行结果,如果程序出现错误,将给出错误的提示,用户修改程序后,可以继续调试运行。

在上述3种程序运行方式中,IDLE的交互方式适合初学者学习语句或函数的功能,每执行一行代码即可看到运行结果,既简单,又直观,但程序代码无法保存。IDLE的程序方式适合书写多行代码,方便用户编程,在实际应用中使用得比较多。除此之外,在Windows操作系统中,双击Python源文件也可以执行程序,但这种方式在实际应用中较少使用。1.5 Python编程方法与应用1.5.1 程序设计方法

程序是完成一定功能的指令的集合,用于解决特定的计算问题。按照软件工程的思想,程序设计可以分为分析、设计、实现、测试、运行等阶段。结构化程序设计是一种典型的程序设计方法,是程序设计的基础思想,它是把一个复杂程序逐级分解成若干个相互独立的程序,然后再对每个程序进行设计与实现。

程序在具体实现上遵循了一定的模式,典型的程序设计模式是IPO模式,也就是程序由输入(Input)、处理(Process)、输出(Output)3部分组成。输入是程序设计的起点,有文件输入、网络输入、交互输入、参数输入等多种方式;输出是程序展示运算成果的方式,包括文件输出、网络输出、控制台输出、图表输出等。处理部分是编程的核心,包括数据处理与赋值,而更重要的是算法。例如,给定两点的坐标,求两点的距离,需要一个公式,这个公式就是一个算法;再如,求三角形面积的公式也是一个算法。更多的算法则需要用户去设计,例如,从一组数据中查找某一数据的位置,这需要根据数据的特点,由用户设计算法。

除了IPO模式,程序中应当有足够的注释,以加强程序的可读性;通过调试来进一步完善程序,这些都是程序设计中不可缺少的环节。

从上面的介绍中可以看出,使用计算机编程解决计算问题包括下面几个重要步骤:分析问题、设计算法、编写程序、调试运行。其中,与程序设计语言和具体语法有关的步骤是编写程序及调试运行。在解决计算问题的过程中,编写程序只是其中的一个环节。在此之前,分析问题、设计算法都是重要的步骤,只有经过这些步骤,一个计算问题才能在设计方案中得以解决,这个过程可以看作是思维的创造过程。编写程序和调试测试则是对解决方案的计算机实现,属于技术实现过程。1.5.2 程序示例

前面已经介绍了程序文件的建立和执行过程,下面给出9个简单的Python程序,方便读者了解Python的基本知识点,这些程序涉及IDLE环境下交互执行程序、程序的分支与循环结构、函数等内容。

读者可以通过查阅文档了解这些程序,也可以忽略这些程序的具体语法含义,大致读懂程序即可。学习这些程序将有助于提高读者学习后续章节的效率。

例1-1 根据圆的半径计算圆的周长和面积。1 #ex0101.py 2 # 计算圆形的面积和周长 3 r = 3.2 4 area = 3.14*r*r 5 perimeter= 2*3.14*r 6 print("圆形的面积:{:.2f},周长:{:.2f}".format(area,perimeter))

本例知识点主要集中在第2章。

程序的第1行和第2行是注释,程序的名字和功能,注释语句不运行,可以书写任何描述或代码。

程序的第3行是赋值语句,将值3.2送给一个变量r,r是半径。

程序的第4行和第5行,用公式π×r×r和2×π×r计算圆的面积和周长。该行是程序的核心,是程序的算法实现。

第6行是打印语句,程序的运行结果是“圆形的面积:32.15,周长:20.10”。

按程序设计的IPO模式,该段代码没有明显的输入,而是采用赋值输入的形式,处理(或算法)是求圆面积和周长的公式,输出是一条打印语句。具体的语法细节请读者查阅相关文档。

例1-2 在IDLE交互方式下,根据圆的半径计算圆的周长和面积。>>> r = 3.2 >>> area = 3.14*r*r >>> print("圆形的面积:{:.2f}".format(area)) 圆形的面积:32.15 >>> perimeter= 2*3.14*r >>> print("圆形的半径:{:.2f},周长:{:.2f}".format(r,perimeter)) 圆形的半径:3.20,周长:20.10

从上述程序可以看出,每行输入语句结束后,代码立即执行。

例1-3 输入三角形三条边,用海伦公式计算三角形的面积。1 #ex0103.py 2 # 输入三角形三条边,用海伦公式计算三角形的面积s 3 import math 4 a=eval(input("请输入a边长:")) 5 b=eval(input("请输入b边长:")) 6 c=eval(input("请输入c边长:")) 7 p = (a + b + c) / 2 8 s = math.sqrt(p * (p - a) * (p - b) * (p - c)) 9 print("三角形的面积是{:.2f}".format(s))

本例知识点主要集中在第3章和第5章。

第3行导入math模块。导入math模块后,可以使用第8行的math.sqrt()方法,这个方法是求平方根的方法。

第4行至第6行使用input()函数接受用户的键盘输入,并使用eval()函数将输入转换为数值类型,从而可以参与数学运算。

第7行是计算赋值语句,计算三条边的和除以2,送给变量p。

第8行是程序的核心代码,用海伦公式计算三角形的面积,并送给变量s。

第9行是打印语句,输出程序的运行结果。

在例1-3中,如果输入的数据不是数值,如输入a11、ab等形式,则运行时会产生错误,为避免这种情况发生,例1-4进行了改进,进行了异常处理。读者如果无法读懂该程序,可以在学习完异常处理后继续读该程序。

例1-4 输入三角形三条边,用海伦公式计算三角形的面积,并对输入数据进行异常处理。1 #ex0104.py 2 ''' 3 输入三角形三条边,用海伦公式计算三角形的面积s 4 对三边进行了异常处理 5 ''' 6 import math 7 try: 8 a=eval(input("请输入a边长:")) 9 b=eval(input("请输入b边长:")) 10 c=eval(input("请输入c边长:")) 11 p = (a + b + c) / 2 12 s = math.sqrt(p * (p - a) * (p - b) * (p - c)) 13 print("三角形的面积是{:.2f}".format(s)) 14 except NameError: 15 print("请输入正数数值")

本例知识点主要集中在第8章异常处理部分。程序运行结果如下,当我们输入数据错误时,系统会给出提示“请输入正数数值”。>>> 请输入a边长:8 请输入b边长:e4 请输入正数数值 >>>

在例1-4中,如果输入的数据(三角形的三条边长度)不符合构成三角形的条件时,需要做出处理。

例1-5 用海伦公式计算三角形的面积,判断构成三角形的条件。1 #ex0105.py 2 ''' 3 输入三角形三条边,用海伦公式计算三角形的面积s 4 在对三边进行异常处理的基础上,判断三条边是否符合三角形条件 5 ''' 6 import math 7 try: 8 a=eval(input("请输入a边长:")) 9 b=eval(input("请输入b边长:")) 10 c=eval(input("请输入c边长:")) 11 except NameError: 12 print("请输入正数数值") 13 if a<0 or b<0 or c<0: 14 print("输入数据不可以为负数") 15 elif a+b<=c or a+c<=b or b+c<=a: 16 print("不符合两边之和大于第三边原则") 17 else: 18 p = (a + b + c) / 2 19 s = math.sqrt(p * (p - a) * (p - b) * (p - c)) 20 print("三角形的面积是{:.2f}".format(s))

本例知识点主要集中在第3章和第8章。上面的代码用分支语句判断三条边构成三角形的条件,其运行结果如下,分支语句将在第4章学习。>>> 请输入a边长:1 请输入b边长:2 请输入c边长:3 不符合两边之和大于第三边原则 >>>

例1-6 给出用列表保存的一组数据,求数据的平均值。1 #ex0106.py 2 lst=[89,5,-34,23.1] 3 total=sum(lst) 4 number=len(lst) 5 print("列表lst的平均值是",total/number)

例1-7 给出用列表保存的一组成绩数据,统计不及格的人数和最高分。1 #ex0107.py 2 lst=[89,45,23.1,98,33] 3 #notpass为不及格人数,maxscore为最高分 4 notpass =maxscore= 0 5 for item in lst: 6 if maxscore

本例知识点主要集中在第3章和第4章,遍历列表实现数据统计。

例1-8 用函数式统计列表中的不及格人数和最高分。#ex0108.py lst=[89,45,23.1,98,33] maxscore=max(lst) #最高分 lst2=filter(lambda x:x<60,lst) #不及格数据的序列 notpass=len(list(lst2)) #不及格人数 print("最高分是{},不及数人数是{}".format(maxscore,notpass))

例1-9 文本文件中保存了一组用逗号分隔的成绩数据,统计不及格的人数和最高分。(文本文件是file.txt,内容是“89,45, 23.1,98,33,56,98”)1 #ex0109.py 2 file=open("file.txt",'r') 3 s1=file.read() 4 file.close() 5 lst=s1.split(',') 6 lst2=[] 7 for item in lst: 8 lst2.append(eval(item)) 9 #print(lst2) 10 #notpass为不及格人数,maxscore为最高分 11 notpass =maxscore= 0 12 for item in lst2: 13 if maxscore

本例知识点主要集中在第7章。代码第2行至第4行的功能是读取文件内容;第5行至第8行的功能是拆分字符串和解析字符串内容(转换为数字);最后,完成数据统计功能。1.5.3 Python的帮助文档

我们在读程序的过程中,不可避免的会遇到一些问题,这些问题可以通过Python的帮助文档解决。Python的帮助文档提供了语言及标准模块的详细参考信息,是学习和使用Python不可或缺的工作。

在IDLE环境下,选择[Help]/[Python Docs]命令或按F1键,可以启动Python文档,如图1-17所示。如果要查找一些数学函数的使用方法,可以按图1-18所示的步骤进行查找,也可以通过关键词查找。图1-17 Python文档初始界面图1-18 查找math模块中的函数

除使用Python内置的帮助文档外,菜鸟教程中的Python也给出了众多的帮助信息,适合初学者学习参考,如图1-19所示。图1-19 菜鸟教程首页本章小结

本章内容主要包括计算机语言的概念,机器语言、汇编语言、高级语言的区别。按照计算机程序的执行方式,高级语言可分为静态语言和脚本语言两类。静态语言采用编译执行的方式,脚本语言采用解释执行的方式。

目前是Python 2.x和Python 3.x两个版本并存,且两个版本之间不兼容。Python的应用领域覆盖了Web开发、科学运算、系统运维、GUI编程、数据库编程等诸多方面。

Python安装包可以在Python的官网下载。Python解释器内置的集成开发工具是IDLE,PyCharm是由JetBrains公司开发的一款专业级的Python IDE,具有程序调试、语法高亮、智能提示等功能。

Python代码源文件的扩展名为.py。程序运行时,首先由Python解释器将.py文件中的源代码翻译成字节码,再由Python虚拟机逐条将字节码翻译成机器指令执行。

运行Python程序的方式有两种:交互方式和文件方式。交互方式是指Python解释器即时响应用户输入的程序代码。文件方式即编程方式,用户将Python程序写在程序文件中,然后启动Python解释器批量执行文件中的代码。

典型的程序设计模式是IPO模式,即程序包括输入(Input)、处理(Process)、输出(Output)3部分,本章最后还介绍了一些程序的典型示例。习题1

1. 选择题(1)Python语言属于以下哪种语言?( )

A. 机器语言

B. 汇编语言

C. 高级语言

D. 以上都不是(2)下列不属于Python特性的是哪一项?( )

A. 简单、易学

B. 开源的、免费的

C. 属于低级语言

D. 具有高可移植性(3)下列计算机语言中,不属于解释型语言的是哪一项?( )

A. Python

B. JavaScript

C. C++

D. HTML(4)下列哪方面的应用,不适合使用Python开发?( )

A. 科学运算

B. 系统运维

C. 网站设计

D. 数据库编程(5)下列关于Python版本的说法中,正确的是哪一项?( )

A. 目前存在Python 3.x兼容Python 2.x版本的程序

B. Python 2.x版本需要升级到Python 3.x版本才能使用

C. 目前Python 2.x版本已经被淘汰

D. Python 2.x和Python 3.x是两个不兼容的版本(6)Python脚本文件的扩展名是哪一项?( )

A. .pyc

B. .py

C. .pt

D. .pyw(7)Python内置的集成开发环境是哪一项?( )

A. PyCharm

B. Pydev

C. IDLE

D. pip

2. 简答题(1)简述Python程序的执行过程。(2)请列举IDLE编程环境下5个快捷键的功能。(3)简述程序的编译方式和解释方式的区别。(4)简述程序设计的IPO模式的特点。

3. 编程题(1)参考例1-3,输入三角形的边长和高,计算并输出三角形的面积。(2)参考例1-6,在列表中给出若干字符串,计算并输出最长的字符串。(3)查阅Python的帮助文档,查找其中的“Numeric Types”类型,试使用其中的函数计算一组数中的最大值和最小值。第2章 Python基础知识

用计算机语言书写的程序称为源程序,也叫源代码。书写程序要注意语句的格式、语法约束、保留字等。本章将介绍如何书写Python程序,Python的数据类型、变量及运算符等。2.1 程序的书写规范

在Python的编辑环境中,程序的书写规范主要体现在语句的格式、代码块与缩进、注释等方面。2.1.1 Python的语句

Python通常是一行书写一条语句,如果一行内书写多条语句,语句间应使用分号分隔。建议每行只写一条语句,并且语句结束时不写分号。

如果一条语句过长,可能需要换行书写,这时可以在语句的外部加上一对圆括号来实现,也可以使用“\”(反斜杠)来实现分行书写功能。

与写在圆括号中的语句类似,写在[]、{}内的跨行语句被视为一行语句,不再需要使用圆括号换行。

例2-1 Python语句的分行书写。str1 = ("当一条语句过长时,可能需要进行换行处理,这时可以\ 在语句的外侧加上一对圆括号来实现。也可以使用反斜\ 杠来分行书写。" ) #第1种写法,用\续行 str2 = ("当一条语句过长时,可能需要进行换行处理,这时可以" "在语句的外侧加上一对圆括号来实现。""也可以使用反" "斜杠来分行书写。" ) #第2种写法 months = ['january','jebrary','march',"april",'may','june','july','august', 'september','october','november','','december'] #写在[]内的代码

在上面的代码中,用单引号和双引号括起来的都是字符串,语句前后的空格是在IDLE环境中换行自动产生的,是可以删除的。2.1.2 代码块与缩进

代码块也称复合语句,由多行代码组成,这些代码能完成相对复杂的功能,Python中的代码块使用缩进来表示,缩进是指代码行前部预留若干空格。其他一些计算机语言,如C语言、Java语言等都是使用大括号{}表示代码块。

Python语句行缩进的空格数在程序编辑环境中是可调整的,但要求同一个代码块的语句必须包含相同的缩进空格数。

看下面的表示程序分支执行的示例代码。

例2-2 Python语句的缩进和代码块。#分支语句中代码块的缩进 score = 54 pass = 60 if score>pass: gpoint = 1+(score-pass)/10 print("学分绩点为",gpoint) print("通过考试") else: print("学分绩点为0") print("未通过考试")

在上面的代码中,if语句后缩进的3行构成一个代码块,else语句后缩进的2行也构成一个代码块。如果同一代码块中各语句前的空格数不一致,运行时将会报告出错信息。

关于代码的缩进,需要注意以下两点。● Python代码行缩进可以调整,建议读者使用4个空格宽度的行首缩进。● 不同文本编辑器中的制表符(Tab键)表示的空白宽度不一致,如果读者使用的代码要跨平台使用,建议不使用制表符。2.1.3 注释

注释用于说明程序或语句的功能。Python的注释分为单行注释和多行注释两种。单行注释以“#”开头,可以是独立的1行,也可以附在语句的后部。多行注释可以使用3个引号(英文的单引号或双引号均可)作为开始和结束的符号,这种注释实际上是跨行的字符串。

例2-3 Python的注释。''' 使用math库中的pi常数,计算圆的面积和体积。 math库是Python的内置数学函数库,需要导入后使用 上面是多行注释 ''' # 程序:用分支判断半径r的值(单行注释) import math r=-2 if r>0: area=math.pi*r*r #附在语句后的单行注释 print(area) else: print("半径为负,请修改程序")

多行注释通常用来说明程序的功能、作者、完成时间、输入/输出等,单行注释一般用来解释代码行的功能。2.2 标识符和关键字

标识符和关键字是计算机语言的基本语法元素,是编写程序的基础,不同计算机语言的标识符和关键字略有区别。下面进行详细介绍。2.2.1 标识符

计算机中的数据,如一个变量、方法、对象等都需要有名称,以方便程序调用。这些用户定义的、由程序使用的符号就是标识符。用户可以根据程序设计的需要来定义标识符,规则如下。● Python的标识符可以由字母、数字和下画线“_”组成,且不能以数字开头。● 标识符区分大小写,没有长度限制。● 标识符不能使用计算机语言中预留的、有特殊作用的关键字。● 标识符的命名尽量符合见名知义的原则,从而提高代码的可读性。例如,程序中的用户名使用username来表示,学生对象使用student来表示。

下面是Python中的合法标识符:myVar、_Variable、姓名

下面是Python中的非法标识符:2Var、vari#able、finally、stu@lnnu、my name 2.2.2 关键字

Python语言保留某些单词用作特殊用途,这些单词被称为关键字,也叫保留字。用户定义的标识符(如变量名、方法名等)不能与关键字相同,否则编译时就会出现异常。Python常用的关键字如表2.1所示。表2.1 Python常用的关键字

在Python中,需要注意True、False、None的写法。如果用户需要查看关键字的信息,可以使用help()命令进入帮助系统查看。

例2-4 使用Python的帮助功能,显示提示信息。>>> help() #进入Python的帮助系统 help> keywords #查看关键字列表 help> break #查看“break”关键字说明 help> quit #退出帮助系统 2.3 Python的数据类型

计算机程序设计的目的是存储和处理数据,将数据分为合理的类型既可以方便数据处理,又可以提高数据的处理效率,节省存储空间。数据类型指明了数据的状态和行为。Python的数据类型包括数值类型(Number)、字符串类型(Str)、列表类型(List)、元组类型等。其中,数值类型是Python的基本数据类型,包含整型(int)、浮点型(float)、复数类型(complex)和布尔类型(bool)4种。

程序使用变量来临时保存数据,变量使用标识符来命名。

1. 整数类型

整数类型简称整型,它与数学中整数的概念一致。整型数据的表示方式有4种,分别是十进制、二进制(以“OB”或“Ob”开头)、八进制(以数字“0o”或“0O”开头)和十六进制(以“Ox”或“OX”开头)。

Python的整型数据理论上的取值范围是(-∞, ∞),实际的取值范围受限于运行Python程序的计算机内存大小。下面是一些整数类型的数据:100,21,0O234,0o67,0B1011,0b1101,0x1FF,0X1DF

Python有多种数据类型,并且有些数据类型的表现形式相同或相近,使用Python的内置函数type()可以测试各种数据类型。

例2-5 使用type()函数测试数据类型。>>> x=0O234 >>> y=0B1011 >>> z=0X1DF >>> print(x,y,z) 156 11 479 >>> type(x),type(y),type(z) (, , )

在上述代码中定义了3个变量,变量的内容将在2.4节中介绍。第1行代码中,变量x的值是一个八进制的整数;第2行代码中,变量y的值是一个二进制的整数;第3行代码中,变量z的值是一个十六进制的整数,它们都属于int类型。运行结果是输出了x、y、z这3个变量的十进制值,并显示了它们的数据类型。

2. 浮点型

浮点型用于表示数学中的实数,是带有小数的数据类型。例如,3.14、10.0都属于浮点型。浮点型可以用十进制或科学计数法表示。下面是用科学计数法表示的浮点型数据:3.22e3,0.24E6,1.5E-3

E或e表示基数是10,后面的整数表示指数,指数的正负使用+号或者-号表示,其中,+可以省略。需要注意的是,Python的浮点型占3083088个字节,能表示的数的范围是-1.8~1.8。

3. 复数类型

复数类型用于表示数学中的复数。例如,5+3j、-3.4-6.8j都是复数类型。多数计算机语言没有复数类型,Python中的复数类型有以下特点。● 复数由实数部分real和虚数部分imag构成,表示为real+imagj或real+imagJ。● 实数部分real和虚数部分imag都是浮点型。

需要说明的是,一个复数必须有表示虚部的实数和j,如1j、-1j都是复数,而0.0不是复数,并且表示虚部的实数部分即使是1也不可以省略。复数的示例代码如下,从运行结果可以看出,复数的实部和虚部都是浮点数。

例2-6 复数类型测试。>>> f1=3.3+2j >>> print(f1) (3.3+2j) >>> type(f1) >>> f1.real 3.3 >>> f1.imag 2.0

4. 布尔类型

布尔类型可以看作是一种特殊的整型,布尔型数据只有两个取

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载