2025年江西省职教高考《信息技术》复习:Python程序设计基础课件(共107张PPT)

资源下载
  1. 二一教育资源

2025年江西省职教高考《信息技术》复习:Python程序设计基础课件(共107张PPT)

资源简介

(共107张PPT)
目录
第七章
Python程序设计基础
考试要求 ………………………………………………… 216
真题链接 ………………………………………………… 216
知识梳理 ………………………………………………… 217
一、程序设计基础知识 ……………………………… 217
二、Python的安装与使用 ………………………… 223
三、Python基础语法 ………………………………… 226
四、Python函数 ……………………………………… 238
五、模块 ………………………………………………… 242
六、文件和异常处理 ………………………………… 245
课后习题 ………………………………………………… 249
考试要求
真题链接
【2024·江西省职教高考】根据程序执行的流程,程序有3种结构: 。
A.顺序结构、选择结构、循环结构 B.简单结构、复杂结构、嵌套结构
C.输入结构、处理结构、输出结构 D.主程序、子程序、函数库
【解析】在程序设计的基本概念中,程序的3种基本结构是顺序结构、选择结构和循环结构。其中,顺序结构是指程序按照代码的先后顺序依次执行,这是程序执行的基本结构。选择结构是根据特定的条件判断,程序选择不同的路径执行,通常使用if…else语句实现。循环结构是在满足特定条件的情况下,重复执行一段代码。常见的循环结构有for循环、while循环等。故选 A。
A
真题链接
【2024·江西省职教高考】学生考试成绩转换成等级的算法流程图如下图所示,当学生成绩≥90分时,等级为“优秀”;80≤学生成绩<90则为“良好”;后续依次为“中等”“及格”和“不及格”。请将流程图中空缺的①②补充完整。
【解析】由题干可知,当SC≥90时,等级为优秀,因此①处应该为print("优秀")。若条件为假,即SC<90时,且当学生成绩≥80时,输出“良好”,因此②处应该为SC≥80。
print("优秀")
SC≥80
知识梳理
一、程序设计基础知识
1.程序设计的相关概念
1)程序的概念
程序是指能够完成特定功能的一系列指令的有序集合,是由程序开发人员根据具体的任务需求设计相应的算法,使用相应的语言编写而成的。
2)程序设计的概念
程序设计是指分析、设计、编写、描述流程、调试程序的方法和过程,它是为完成具体的任务而进行的智力活动。它包括数据结构和算法两大部分。程序设计的过程包括从最初的构思到代码编写,再到调试运行的完成。
一、程序设计基础知识
2.程序设计语言的发展
程序设计语言的发展经历了从机器语言、汇编语言到高级语言的历程。
1)第一代程序设计语言———机器语言
最初的计算机编程语言是机器语言,它随计算机的产生而产生。
(1)概念。
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
(2)特点。
机器语言是直接面向处理器(或称面向机器)的低级语言,其运行与操作都与计算机硬件密切相关。它具有以下特点。
①直接执行。机器语言是计算机能够识别并直接产生作用的语言,可直接执行,并且执行速度快。
②执行效率高。机器语言占用资源(如内存)少,执行效率高。
③无通用性。不同型号的计算机机器语言互不相通,不可移植。
④不易记忆和理解。机器语言程序可读性差,不易记忆和理解,编程烦琐、负担大。
⑤难以修改和维护。机器语言程序缺乏结构层次,程序检查和调试不便,难以修改和维护。
一、程序设计基础知识
2.程序设计语言的发展
2)第二代程序设计语言———汇编语言
为了减轻机器语言程序编写负担,20世纪50年代初发明了汇编语言。
(1)概念。
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,也称为符号语言。在这种语言中,助记符用来代替机器指令的操作码,而地址符号或标号则用来代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,并通过汇编过程转换成机器指令。
(2)特点。
汇编语言也是一种直接面向处理器(或称面向机器)的低级语言,它具有以下几个特点。
①汇编后运行。计算机不能直接识别和运行使用汇编语言编写的程序,必须通过一个汇编程序将汇编语言程序转换为机器语言程序后方可执行。
②机器相关性。汇编语言是机器指令的符号化表示,不同的机器有不同的汇编语言,不同平台之间不可直接移植。
一、程序设计基础知识
2.程序设计语言的发展
2)第二代程序设计语言———汇编语言
(2)特点。
③高速度和高效率。汇编语言所占空间、执行速度与机器语言相仿,占用内存少,执行速度快,效率高。
④硬件控制功能强。汇编语言保持了机器语言的优点,可直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O 端口等。
⑤易于记忆。汇编语言比机器语言更加直观,容易记忆。
⑥维护性差。汇编语言结构化弱,难以表达程序设计意图,可维护性差。
3)第三代程序设计语言———高级语言
为了提高程序编写的效率,20世纪50年代中期高级语言诞生。
(1)概念。
高级语言是相对于汇编语言而言的,是接近自然语言和数学语言的程序设计语言。用高级语言编写的程序称为源程序。
一、程序设计基础知识
2.程序设计语言的发展
3)第三代程序设计语言———高级语言
(2)特点。
①编译或解释运行。计算机不能直接识别和运行使用高级语言编写的程序,必须通过编译程序或解释程序将高级语言程序转换为机器语言程序后方可执行。
编译程序也称为编译器,是指把源程序翻译成目标程序(机器语言)的翻译程序;解释程序又称直译程序,是指把源程序一行一行直接转译并执行的程序。编译程序只具有翻译功能,没有执行功能;解释程序则将翻译功能与执行功能融为一体,边翻译边执行。常见的高级语言包括Basic、Perl、MATLAB、Ruby与 Python等。
②与机器无关。高级语言独立于具体的计算机硬件,与机器无关,通用性和可移植性较好。用高级语言编写程序不需要熟悉计算机硬件。
③易于理解。高级语言接近自然语言和数学语言,有更强的表达能力,可方便地表示数据的运算和程序的控制结构,易于理解、学习,能有效描述各种算法。
一、程序设计基础知识
2.程序设计语言的发展
3)第三代程序设计语言———高级语言
(2)特点。
④编程效率高。高级语言接近于被描述的问题,编写出的程序可读性强,大大简化了程序的编制和调试,极大地提高了编程效率。
⑤运行效率较低。相对于机器语言与汇编语言,高级语言程序所占内存大,不能直接访问、控制硬件,执行速度慢,运行效率较低。
3.算法基础
1)算法的概念
算法是对解决某个特定问题的方法和步骤的精确描述。所谓精确描述是指对一个问题求解算法的描述,使算法的“执行者”能够根据算法所描述的方法和步骤逐步完成对该问题的求解工作。
一、程序设计基础知识
3.算法基础
2)算法的特征
一个算法应该具有以下5个重要的特征。
01
可行性
可行性是指算法中的每一步都应当有效地运行。也就是说,算法是可行的,并要求最终得到正确的结果。
02
确定性
确定性是指算法的每一步操作必须有确切的含义,不能有二义性和多义性。
有穷性
有穷性是指算法必须能在执行有穷个步骤之后终止结束,即必须在有限时间内完成。
03
有输入
一个算法有零个或多个输入,以描述运算对象的初始情况。零个输入是指算法本身定出了初始条件。
04
有输出
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
05
一、程序设计基础知识
3.算法基础
3)算法的表示方法
(1)自然语言。自然语言是指人们日常所用的语言,如汉语、英语、德语等。
(2)伪代码。伪代码是介于自然语言和计算机程序语言之间的一种算法描述,通常是由自然语言和类编程语言组成的混合结构。
(3)流程图。流程图也称为框图,是指以特定的图形符号加上说明来表示算法的图,其常见符号及含义见表7-1。
表7-1 流程图的常见符号及含义
一、程序设计基础知识
4.程序设计的主要过程及其基本控制结构
1)程序设计的主要过程
在实际应用中,程序设计的主要过程包括分析问题、设计算法、描述流程、编写程序、调试运行程序。
(1)分析问题。分析一个要由计算机解决的问题,首先需要分析题意,明确所要解决的问题属于什么类型,原始数据是什么,怎样加工,经过计算机处理后需要输出什么结果等,然后建立相应的数学模型,确定解决问题的方案。
(2)设计算法。如何确定算法是计算机程序设计的重点。算法规定了操作的顺序,按照这个有限的步骤就可以完成特定类型问题的求解。
(3)描述流程。确定算法后,根据算法的描述绘制出算法的流程图,以确定解决问题的步骤。
(4)编写程序。有了算法和流程后,就可以选定一种高级语言,以程序的形式将算法描述出来,以形成应用程序设计语言编写的源程序。
一、程序设计基础知识
4.程序设计的主要过程及其基本控制结构
1)程序设计的主要过程
(5)调试运行程序。完成程序源代码的编写后,就可以对程序进行调试了。调试工作主要分为排错和测试两部分。其中,排错主要是发现程序中隐藏的错误,并予以纠正;测试是确认程序在各种可能的情况下都可以正确执行。
因此,程序设计还可以描述为
程序设计=算法+数据结构+方法+工具
2)程序设计的基本控制结构
任何复杂的算法都可以由顺序结构、选择(分支)结构和循环结构这3种基本结构组成,因此构造一个算法的时候,也仅以这3种基本结构作为“建筑单元”,遵守3种基本结构的规范。基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部。正因为整个算法都是由这3种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。
一、程序设计基础知识
4.程序设计的主要过程及其基本控制结构
2)程序设计的基本控制结构
(1)顺序结构。顺序结构是简单的线性结构,各框按顺序执行。顺序结构流程图的基本形态如图7-1所示。
(2)选择结构。选择结构是对某个给定的条件进行判断,条件为真或假时分别执行不同的代码。选择结构流程图的基本形态如图7-2所示。
图7-1 顺序结构流程图
图7-2 选择结构流程图
一、程序设计基础知识
4.程序设计的主要过程及其基本控制结构
2)程序设计的基本控制结构
(3)循环结构。循环结构有两种基本形态:while型循环和 do…while型循环。循环结构流程图的基本形态如图7-3所示。while型循环执行序列为:当条件为真时,反复执行代码1,一旦条件为假,则跳出循环,去执行循环外的语句。do…while型循环执行序列为:首先执行代码1,再判断条件,当条件为真时,一直循环执行代码1;一旦条件为假,则结束循环,去执行循环外的下一条语句。
图7-3 循环结构流程图
一、程序设计基础知识
5.Python程序设计语言简介
1)Python的发展历史
Python于1989年由 Guido van Rossum(吉多·范罗苏姆)在荷兰国家数学和计算机科学研究所设计,第一个 Python编译器于1991年发布。
Python这个名字来自 Guido喜爱的电视连续剧 Monty Python’s Flying Circus(《蒙蒂·派森的飞行马戏团》),他希望 Python能符合他的理想:既能够像 C语言那样能全面调用计算机的功能接口,又可以像Shell脚本那样轻松编程。Python语法深受 C 语言影响,同时也受到 ABC 语言的强烈影响。ABC语言的目标是让程序语言变得易于阅读、使用、记忆和学习,以激发人们学习编程的兴趣。因此,Python融合了多种语言的特性,包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、UNIX Shell以及其他的脚本语言等。
Python支持广泛的应用程序开发,涵盖从简单的文字处理到 WWW 浏览器,再到游戏等各种领域。使用 Python编程的一大优势是,开发者可以将更多精力集中于思考程序逻辑,而不必过多纠结于具体的实现细节,这一特征吸引了大量程序员。
一、程序设计基础知识
5.Python程序设计语言简介
2)Python的语言特点
Python是一种面向对象的、解释型、动态类型的高级编程语言。它具有以下几个特点。
(1)简单易学。Python语法简洁(如强制缩进替代大括号),保留字数量少(截至 Python 3.10共36个),无冗余符号(如分号、begin/end)。
(2)可读性强,易于维护。Python代码定义清晰、规范,可读性强,易于理解,因而也易于维护。
(3)面向过程与对象。Python既支持面向过程的编程,也支持面向对象的编程。
(4)可扩展。Python通过 API(应用程序编程接口)使用 C 或者 C++进行性扩展,从而在保留Python灵活语法和便捷功能的同时,显著提升关键部分的执行性能。
(5)解释型与交互式。Python是解释型语言,源代码无需编译即可运行。它支持互动模式,用户可在 Python提示符“>>>”后直接输入并立即执行代码,便于快速测试和调试代码片段。
(6)免费且开源。Python属于 FLOSS(自由/开放源码软件)之一,用户可以自由地发布软件备份、阅读和修改其源代码,并自由地将修改后的部分用于新的自由软件中。
一、程序设计基础知识
5.Python程序设计语言简介
2)Python的语言特点
(7)可移植好。Python已被移植到众多平台,可在 Windows、macOS和各种 Linux/UNIX 系统上运行,例如,在 Windows上编写的 Python程序,通常无需修改即可在 Linux上运行。
(8)拥有丰富的库。Python具备功能强大的标准库和第三方库,支持包括正则表达式、文档生成、单元测试、多线程、数据库访问、网页浏览、CGI、FTP、电子邮件处理、XML/HTML解析、WAV 文件、密码系统、GUI(图形用户界面)等多种功能。
3)Python的应用领域
(1)Web开发。Python可以快速创建 Web应用,这得益于其强大的基础库和丰富的网络框架。
(2)游戏开发。Python也能用来开发互动性的游戏,尤其是在游戏逻辑,脚本编写和快速原型设计方面。
(3)桌面应用程序。Python可用于桌面应用程序开发。它提供了多种用于构建用户界面的库和模块等,例如tkinter、wxPython和 PyQt等,便于在多个平台上创建桌面应用程序。
一、程序设计基础知识
5.Python程序设计语言简介
3)Python的应用领域
(4)网络爬虫。在网络爬虫领域,Python的功能非常强大,能够高效、灵活地从互联网上抓取、解析和结构化所需的数据。
(5)云计算。Python是云计算领域的重要语言之一,著名的开源云计算框架 OpenStack就是由Python开发的。
(6)自动化运维。Python是一门综合性语言,能满足绝大部分自动化运维需求,无论前端还是后端任务都可以实现。随着大数据和人工智能的发展,自动化运维正逐渐成为趋势,有望替代部分人工运维。
(7)科学计算与数据可视化。自1997年起,美国国家航空航天局(national aeronautics and space administration,NASA)就大量使用Python进行各种复杂的科学计算,为Python积累了丰富的科学计算库。
(8)金融分析与量化交易。Python拥有大量的金融计算库,并且可以与 C++、Java等语言接口,实现高效的分析和交易策略执行,因此成为金融领域快速开发和应用的一门关键语言。
(9)机器学习与人工智能。机器学习与人工智能是当前的热门领域。Python是人工智能领域的核心编程语言。它拥有主导性的机器学习库和深度学习框架。
二、Python的安装与使用
Python可以在多个平台上进行安装和运行,例如 Linux、UNIX、Windows、macOS等。这里介绍在 Windows上安装部署 Python的方法。
在 Windows系统中安装 Python开发环境常用的方法有两种。第一种是在 Python官网下载Windows对应系统版本的Python安装程序进行安装,第二种是通过 Anaconda安装。这里以安装Python3.11.4为例,介绍第一种方法。
1.安装Python软件
(1)打开360浏览器,在搜索框输入“Python官网”,单击图7-4所示的链接。
图7-4 Python下载链接
二、Python的安装与使用
1.安装Python软件
(2)在弹出的窗口中选择“Downloads”选项卡,单击“Python3.11.4”按钮,如图7-5所示。
图7-5 单击“Python3.11.4”按钮
(3)在打开的“新建下载任务”对话框中选择下载地址,然后单击“下载”按钮,如图7-6所示。
图7-6 选择下载地址
二、Python的安装与使用
1.安装Python软件
(4)在弹出的对话框中选择刚下载好的文件后,单击“打开”按钮,如图7-7所示。
(5)在弹出的对话框中单击“运行”按钮,如图7-8所示。
图7-7 打开下载的文件
图7-8 运行下载的文件
二、Python的安装与使用
1.安装Python软件
(6)在弹出的对话框中先选中“Add python.exe to PATH”复选框,然后单击“Install Now”按钮,如图7-9所示。
(7)弹出图7-10所示的对话框,单击“Close”按钮关闭即可,至此 Python运行环境安装完成。
图7-9 安装
图7-10 成功安装提示框
二、Python的安装与使用
2.Python的运行
(1)使用自带集成开发环境IDLE。 Python安装成功以后,会自带一个集成式开发环境IDLE。它是一个 Python Shell,程序开发人员可以利用 Python Shell与 Python进行交互。
在 Windows系统的“开始”菜单中找到“IDLE(Python 3.11 64-bit)”,打开后,进入IDLE主窗口,图7-11所示的界面就是一个交互式执行环境,或称为解释器,窗口左侧会显示 Python命令提示符“>>>”,可以在提示符后面输入 Python代码,按 Enter键后就会立即执行并返回结果。
图7-11 IDLE主窗口
二、Python的安装与使用
2.Python的运行
(1)使用自带集成开发环境IDLE。如果要创建一个代码文件,可以在IDLE 主窗口的顶部菜单栏中执行“File”下拉菜单中的“New File”命令,弹出新的文件窗口,可以在里面输入 Python代码,然后在顶部菜单栏中执行“File”下拉菜单中的“Save As”命令,如图7-12所示,把文件保存为“hello.py”。
如果要运行代码文件“hello.py”,可以在IDLE 的文件窗口的顶部菜单栏中执行“Run”下拉菜单中的“Run Module”命令(或按 F5快捷键),这时就会开始运行程序。程序运行结束后,会在IDLE Shell窗口显示运行结果,如图7-13所示。
图7-12 执行“Save As”命令
图7-11 IDLE Shell窗口显示运行结果
二、Python的安装与使用
2.Python的运行
(2)使用 Windows自带的命令提示符窗口。使用 Windows系统的cmd命令界面运行代码文件,在命令提示符后面输入python(解释器)和保存的 Python文件目录,例如输入语句“python E:\Python\hello.py”,运行结果如图7-14所示。
图7-14 Windows命令提示符窗口运行结果
三、Python基础语法
1.Python的关键字与标识符
1)关键字
关键字即保留字,是 Python中已经被赋予特定意义的一些单词,不能用作常量、变量或任何其他标识符名称。Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字。
>>> import keyword
>>> keyword.kwlist
[ False , None , True , and , as , assert , async , await , break , class , continue , def , del , elif , else , except , finally , for , from , global , if , import , in , is , lambda , nonlocal , not , or , pass , raise , return , try , while , with , yield ]
三、Python基础语法
1.Python的关键字与标识符
2)标识符
在 Python中,标识符用来区分每个对象的对象名称。它由用户定义,主要用来给变量(varible)、函数(function)、类(class)、模块(module)等命名。每种语言都有自己标识符的命名规则,这些规则基本大同小异。Python的标识符命名规则主要包括以下几点。
(1)标识符由字母、数字、下划线组成。
(2)所有标识符可以包括英文、数字以及下划线,但不能以数字开头。
(3)标识符区分大小写,如 Abc、abc、ABc是不同的标识符。
(4)标识符不能是 Python的保留字或关键字,如for、if等。
(5)Python标识符的长度没有限制,但标识符不宜过长,否则书写不方便,阅读也困难。
(6)在 Python 3系列版本中,可以用中文作为变量名,非 ASCII标识符也是允许的。
(7)在 Python语言中,以下划线开头的标识符有特殊含义。
以单下划线开头(如_foo)的标识符代表不能直接访问的类属性,需通过类提供的接口进行访问,不能使用from xxx import*的方式导入。
三、Python基础语法
1.Python的关键字与标识符
2)标识符
以双下划线开头(如_ _foo)的标识符代表类的私有成员,以双下划线开头和结尾(如_ _foo_ _)的标识符代表 Python中特殊方法专用的标识,如_ _init_ _()代表类的构造函数。因此,除非特定场景需要,应避免使用以下划线开头的标识符。
①以下所列是合法的标识符。
MYNAME
name
name1
My_name
②以下所列是非法的标识符。
3name #以数字开头
for #属于Python中的关键字
$money #包含特殊字符
三、Python基础语法
2.Python的数据类型
Python支持的数据类型有整数(int)类型、浮点数(float)类型、布尔(bool)类型、复数(complex)类型以及字符串(string)类型。
1)整数类型
整数类型简称整型,它用来存储整数数值。整数包括正整数、负整数和0,不带小数点。按照进制的类型,整数类型还可以划分为二进制整数、八进制整数、十进制整数和十六进制整数。
Python3整型是没有限制大小的,可以当作long类型使用,所以Python 3没有Python 2的long类型。
2)浮点数类型
浮点数类型简称浮点型,也称为“小数”,它由整数部分与小数部分组成。浮点型也可以使用科学记数法表示,如1.3e4、-3.14e5和2.52e-2等。
3)布尔类型
布尔类型简称布尔型,用来表示“真”或“假”的值,通常用在条件判断和循环语句中。布尔型是整型的子类型,即布尔类型可以当作整数来对待,因此 True相当于整数值1,False相当于整数值0。任何对象都可以转换成布尔类型,也可以直接用于条件判断。
三、Python基础语法
2.Python的数据类型
4)复数类型
复数是由实数部分和虚数部分构成的,虚部使用j或J表示,整个复数可以使用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。例如,一个复数的实部为1.25,虚部为5.25j,则这个复数为1.25+5.25j。
三、Python基础语法
2.Python的数据类型
5)字符串类型
字符串是 Python中常用的数据类型,它是连续的字符序列,通常使用单引号( )、双引号("")或三引号( )来创建字符串。其中,单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上,从而可以支持格式较为复杂的字符串。
字符串的创建方法简单,为变量分配一个值即可。例如下面的示例。
>>> var1= purple #使用单引号,字符串内容必须在一行
>>> var2="red" #使用双引号,字符串内容必须在一行
#使用三引号,字符串内容可以分布在多行
>>> var3= I like learning,
Learning Python makes me happy
>>> print(var1)
>>> print(var2)
>>> print(var3)
三、Python基础语法
3.组合数据类型
1)列表
列表(list)可以是若干数值存放于一个方括号内,以逗号分隔。列表的数据项不需要具有相同的数据类型。其格式代码如下所列。
list1=[ physics , chemistry ,1997,2000]
list2=[1,2,3,4,5]
list3=["a","b","c","d"]
与字符串的索引相同,列表索引从0开始,可以进行截取、组合等。表7-2列出的是 Python列表脚本操作符。
表7-2 Python列表脚本操作符
三、Python基础语法
3.组合数据类型
2)元组
元组(tuple)与列表类似,不同之处在于元组中的元素不能修改和删除,但列表可以修改和删除;元组使用小括号,列表使用方括号。其格式代码如下所列。
tup1=( physics , chemistry ,1997,2000)
tup2=(1,2,3,4,5)
tup3="a","b","c","d" #不使用括号也可以给元组赋值
tup4=() #创建空元组
tup5=(50,) #只有一个元素的元组,需要在元素后面加逗号
与字符串的索引相同,元组的索引也是从0开始的,可以进行截取、组合等。
3)集合
集合(set)是一个无序不重复的序列,可以使用大括号{}或set()函数创建。需要注意的是,创建空集合必须用set()而不是{},因为{}创建的为空字典。其格式代码如下所列。
basket={ apple , orange , banana , pear }
data=set([1,2,3])
三、Python基础语法
3.组合数据类型
4)字典
字典(dictionary)是另一种可变容器模型,且可以存储任意类型的对象。字典的每个键值对(key:value)的键与值之间用冒号分隔,键值对与键值对之间用逗号分隔,整个字典用{}括起来。其格式代码如下所列。
dict={key1:value1,key2:value2}
三、Python基础语法
4.Python的常量与变量
1)常量
常量是内存中用于保存固定值的单元,在程序中常量的值不能发生改变。
Python常量包括数字、字符串、布尔值和空值,一般所有字母大写。常量通常放置在代码的最上部,并在全局使用。例如,常用的π就是一个常量。
>>> PI=3.141592653
>>> print(PI)
执行结果如下所列。
3.141592653
2)变量
变量代表的是内存中命名的存储位置,与常量不同的是,变量的值是可以动态变化的。Python中变量的命名规则如下。
(1)变量名必须是一个有效的标识符。
(2)变量名不能是 Python的保留字或关键字。
三、Python基础语法
4.Python的常量与变量
2)变量
(3)应选择有意义的单词作为变量名。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。Python中的变量赋值不需要类型声明。每个变量在内存中创建时都包括变量的标识、名称和数据这些信息。使用赋值运算等号(=)来给变量赋值,赋值运算符左边是一个变量名,赋值运算符右边是存储在变量中的值。例如下面的示例。
>>> number=365 #创建变量number并赋值365,该变量为数字类型
>>> name="John" #创建变量name并赋值John,该变量为字符串类型
Python允许同时为多个变量赋值。例如下面的示例。
>>> a=b=c=1 #创建一个整型对象,值为1,三个变量被分配到相同的内存空间上
Python也可以为多个对象指定多个变量。例如下面的示例。
a,b,c=1,2,"john" #将两个整型对象1和2分别分配给变量a和b,字符串对象"john"分配给变量c
三、Python基础语法
4.Python的常量与变量
2)变量
(3)应选择有意义的单词作为变量名
在 Python中,可以使用内置函数type()返回变量类型。例如下面的示例。
>>> a,b,c,d=20,5.5,True,"John" #定义a,b,c,d共4个变量并赋值
>>> print(type(a),type(b),type(c),type(d)) #输出4个变量的类型
上述输出结果如下所列。

三、Python基础语法
5.Python的运算符
Python语言支持以下几种类型的运算符。
1)算术运算符
Python的算术运算符主要完成操作数的算术运算,包括加、减、乘、除、幂、取整等,具体描述及实例见表7-3(表中实例,假设变量a为10,b为21)。
表7-3 Python的算术运算符描述及其实例
三、Python基础语法
5.Python的运算符
2)比较运算符
比较运算符主要完成操作数的比较计算,比较的结果通常是一个逻辑量(True或False)。Python的比较运算符描述及实例见表7-4。
表7-4 Python的比较运算符描述及其实例
三、Python基础语法
5.Python的运算符
3)赋值运算符
赋值运算符“=”表示将右侧的值赋给左侧的变量或表达式。除简单的赋值运算符外,Python还提供了复合的赋值运算符,见表7-5。
4)逻辑运算符
逻辑运算符用于将两个变量或表达式进行逻辑运算。Python的逻辑运算符有与、或、非三种,见表7-6。
表7-5 Python的赋值运算符描述及其实例
表7-6 Python的逻辑运算符描述及其实例
三、Python基础语法
5.Python的运算符
5)成员运算符
除了上述运算符之外,Python还支持成员运算符,用于测试实例中是否包含了一系列成员,包括字符串、列表或元组。Python的成员运算符描述见表7-7。
6)身份运算符
身份运算符用于比较两个对象的存储单元,即判断两个标识符是否引自同一个对象。Python的身份运算符描述见表7-8。
表7-7 Python的成员运算符描述
表7-8 Python的身份运算符描述
三、Python基础语法
5.Python的运算符
6)身份运算符
Python中各个运算符的优先级是不一样的,优先级高低见表7-9,表中运算符由上至下优先级逐渐降低。
表7-9 Python中各个运算符的优先级
三、Python基础语法
6.程序控制结构
1)条件语句
(1)if语句。
在处理现实生活中的问题时,时常先进行判断再做出决定,例如去哪儿玩,买什么品牌的手机等。在编写代码时,使用if…else语句来判断并做出决定,改变程序中的执行流程。Python支持其他语言中常见的流程控制语句,条件语句则提供了这种能力。最简单的条件语句形式是if语句,例如下面的示例。
if x> 0:
print( x is positive )
if语句后面的布尔表达式称为条件,以冒号字符“:”结束判断,需要执行的语句块缩进。
三、Python基础语法
6.程序控制结构
1)条件语句
(1)if语句。
如果逻辑条件为真,就执行缩进语句;如果逻辑条件为假,则跳过缩进语句。应记住给出适当的缩进,所有缩进的行都将根据表达式的值进行评估。
例如,将某个数字作为输入并检查该数字是否为正数。
number= int(input("Enter a number:"))
if number> 0:
print( The number is positive )
程序执行结果如下所列。
Enter a number:23
The number is positive
三、Python基础语法
6.程序控制结构
1)条件语句
(2)else语句。
在上面的示例中,如果数字小于0,程序要输出该数为负数。因此,可以使用else语句,使if语句条件判断为假时有效。
number= int(input("Enter a number:"))
if number> 0:
print("The number is positive")
else:
print("The number is negative")
程序执行结果如下所列。
Enter a number:-3
The number is negative
由于条件判断必为真或假,因此将执行其中一个选项。又如,奇偶数判断示例如下。
if x % 2 == 0:
print( x is even )
else:
print( x is odd )
如果x除以2的余数是0,那么x是偶数,且程序会显示一条消息。如果条件为假,则执行第二组语句。
三、Python基础语法
6.程序控制结构
1)条件语句
(3)elif语句。elif语句用于在if语句之后添加多个可选的条件分支。一旦某个条件为 True,执行对应的代码块后,整个if…elif…else结构就会结束。
>>> x= int(input("Please enter an integer:"))
Please enter an integer:42
if x< 0:
x= 0
print( Negative changed to zero )
elif x== 0:
print( Zero )
elif x== 1:
print( Single )
else:
print( More )
More
三、Python基础语法
6.程序控制结构
1)条件语句
(4)if嵌套。
一个条件也可以嵌套在另一个条件中,例如下面的三分支示例。
if x== y:
print( x and y are equal )
else:
if x< y:
print( x is less than y )
else:
print( x is greater than y )
外部条件包含两个分支:第一个分支包含一个简单的语句;第二个分支包含另一个if语句,它有自己的两个分支,这两个分支都是简单的语句,尽管它们也可以是条件语句。
虽然语句的缩进可以使结构明显,但条件嵌套的使用代码变得难以阅读。一般来说,应尽可能避免使用条件嵌套。
逻辑运算符通常提供一种简化嵌套条件语句的方法。例如,可以使用单个条件重写以下代码。
if 0 < x:
if x< 10:
print( x is a positive single-digit number. )
该print语句仅在使其通过两个条件时才会执行,因此可以使用and运算符获得相同的效果。
if 0 < x and x< 10:
print( x is a positive single-digit number. )
三、Python基础语法
6.程序控制结构
2)循环语句
计算机非常擅长在不出错的情况下重复执行相同或相似的任务。由于循环非常普遍,Python提供了几种语言特性来使编写和管理循环更加容易。
前面列举的示例中,有时需要多次执行相同的工作。例如,使用计数器检查代码需要执行多少次等,这种技术称为循环。
(1)while循环语句。
while condition:
statement 1
statement 2
要重用的代码必须在 while语句下正确缩进。如果条件为真,它们将被执行。就像在if…else语句中一样,任何非零值都是真的。例如,打印数字0到8。
n= 0
while n< 9:
print( % d \ t % n,end="")
n+ = 1
其输出结果如下。
0 1 2 3 4 5 6 7 8
三、Python基础语法
6.程序控制结构
2)循环语句
(1)while循环语句
在第一行中,设置n=0,然后在 while语句中,设置条件为n<9,这意味着在下面缩进的代码块将执行,直到n变得大于等于9。在循环内部只是打印n的值,然后加1。
一个 while语句的执行流程如下。
①评估条件,结果为 True或 False。
②如果条件为 False,则退出该 while语句并继续执行下一条语句。
③如果条件为 True,则执行循环体,然后返回步骤①。
这种类型的流程称为循环,因为第三步循环回到顶部。每次执行循环体时都会调用一次循环。对于上面的循环,通常会说它有n次循环,这意味着循环的主体被执行n次。
循环体应该改变一个或多个变量的值,以便最终条件变为假并终止循环。调用每次循环执行时变化的变量,并控制循环何时完成循环变量。如果没有循环变量的变化,循环将永远重复,导致无限循环。
三、Python基础语法
6.程序控制结构
2)循环语句
(2)无限循环。
在上面的示例中,可以确定循环终止,原因是知道n是有限的,并且可以看到n每次循环后,值都会变大,最终达到9。
以下循环显然是一个无限循环,因为 while语句中的逻辑表达式只是逻辑常数 True。
n= 10
while True:
print(n,end= )
n= n-1
如果运行此代码,将需要快速了解如何停止系统上失控的 Python进程或查找计算机上的关机按钮的位置,否则这个程序将永远运行,因为循环顶部的逻辑表达式总是正确的(表达式是常量值 True)。
三、Python基础语法
6.程序控制结构
2)循环语句
(2)无限循环。
虽然这是一个功能失调的无限循环,但是仍然可以使用这种模式来构建有用的循环,只要小心地将代码添加到循环体中即可。例如,有时不知道何时结束一个循环,在这种情况下,可以编写一个无限循环,然后使用break语句跳出循环。
例如,想从用户那里获取输入,直到他们输入“y”为止,则可以使用下面的程序代码。
While True:
line= input( > )
if line== y :
break
print(line)
print( Done ! )
由于循环条件是 True,它始终为真,因此循环重复运行,直到遇到break语句。
每次通过时,它都会用尖括号提示用户。如果用户输入“y”,则执行break语句退出循环,否则程序会回显用户输入的任何内容并返回到循环的顶部。
这种编写 while循环的方式很常见,因为可以在循环中的任何位置检查条件,并可以肯定地表达停止条件(“当这种情况发生时停止”),而不是否定地表达停止条件(“继续下去,直到发生这种情况”)。
三、Python基础语法
6.程序控制结构
2)循环语句
(3)continue语句和break语句。
有时在循环执行中,希望完成当前循环并立即跳转到下一个循环。在这种情况下,可以使用continue语句跳转到下一次循环,而无需完成当前循环的循环体。
下面的程序复制用户输入直到输入“done”,但将以“#”字符开头的行视为不打印的行(有点像Python注释)。
While True:
line= input( > )
if line[0]== # :
continue
if line== done :
break
print(line)
print( Done! )
三、Python基础语法
6.程序控制结构
2)循环语句
(3)continue语句和break语句
程序执行结果如下所列。
> hello there
hello there
> # don t print this
> print this!
Print this!
> done
Done!
由此可以看到,除了以“#”字符开头的行外,所有行都被打印出来。因为当continue执行时,它会结束当前循环并跳回 while语句,以便开始下一次循环,从而跳过该print语句。
三、Python基础语法
6.程序控制结构
2)循环语句
(4)for循环。
若要遍历一组事物,如单词列表、文件中的行或数字列表,这时可以使用语句构造一个明确次数的循环。while循环直到某个条件变为 False时才结束,而for循环通过一组已知的项目,循环次数确定,它运行的循环次数与序列数据中的项目一样多。
for循环可以遍历任何可迭代对象,例如一个列表或一个字符串,语法格式如下所列。
for in:

与 while循环类似,for循环有一个for语句和一个循环体。例如下面的示例。
a= [ Chris , is , a smart boy ! ]
for x in a:
print(x)
三、Python基础语法
6.程序控制结构
2)循环语句
(4)for循环。
程序运行结果如下所例。
Chris
is
a smart boy!
例如,要计算列表中的项目数,编写以下for循环。
count= 0
for number in[3,41,12,9,74,15]:
count= count+ 1
print( count: ,count)
3)顺序结构
顺序结构的各操作步骤是顺序执行的,它是最简单的一种基本结构,任何算法都包含此结构。
三、Python基础语法
7.Python程序编写和调试方法
1)Python程序的编写步骤
01
确定问题
首先明确要解决的问题是什么,即理解问题的需求。
02
设计算法
构思如何解决这个问题,并设计出相应的算法。
编写代码
使用 Python编写实现算法的代码。
03
测试代码
通过测试用例验证代码的正确性。
04
优化和调试
根据测试结果优化代码,调试错误。
05
三、Python基础语法
7.Python程序编写和调试方法
2)Python程序的调试方法
调试是编程过程中不可或缺的一部分,它可以帮助开发者找出并修复代码中的错误。下面是一些常用的 Python调试方法。
(1)使用print语句。在代码的关键位置添加print语句来输出变量的值或程序的状态,以便跟踪程序的执行流程。例如下面的示例。
def add(a,b):
print("a:",a)
print("b:",b)
return a-b
result=add(3,4)
print("result:",result)
三、Python基础语法
7.Python程序编写和调试方法
2)Python程序的调试方法
(2)使用pdb调试器。Python自带的pdb是一个简单的交互式源代码调试器,可以在命令行中使用。例如下面的示例。
bash
python-m pdb your_script.Py
(3)使用IDE调试工具。大多数现代IDE(如 PyCharm、VSCode等)都提供了内置的调试工具,可以设置断点、单步执行、查看变量值等。
(4)使用单元测试和调试工具。编写单元测试可以帮助定位代码中的问题,并通过断言验证代码的行为是否符合预期。
三、Python基础语法
7.Python程序编写和调试方法
3)Python程序的调试技巧
01
设置断点
在代码的关键位置设置断点,当程序运行到这些位置时会暂停执行,让开发者有机会查看当前的状态。
02
单步执行
逐步执行代码,查看每行代码执行后的效果,这对于理解代码执行流程和发现问题非常有帮助。
查看变量值
在调试过程中,查看和比较变量的值,可以帮助用户理解代码的行为,并找出潜在的问题。
03
逻辑分析
理解程序的逻辑结构,使用逻辑判断来确定程序是否正确执行。
04
使用调试器工具
熟悉调试器工具的界面和功能,充分利用其提供的功能来提高调试效率。
05
四、Python函数
1.函数的概念
在程序设计的范畴,函数是执行计算的命名语句序列。定义函数时,指定名称和语句序列后,可以按名称调用该函数。例如下面的示例。
>>> abs(-5)
其输出结果如下。
5
该函数的名称是abs,括号中的表达式称为函数的参数。参数是作为函数输入传递给函数的值或变量。对于abs函数,其结果是返回了参数的绝对值。
一般来说,函数接收一个参数并返回一个结果,其结果称为返回值。
四、Python函数
2.函数的定义方法
除了使用 Python自带的函数外,还可以定义新函数。函数定义是指定义新函数的名称和调用函数时执行的语句序列。一旦定义了一个函数,就可以在整个程序中一遍又一遍地使用这个函数。
如果在开发中遇到有若干代码的执行逻辑完全相同,就可以考虑将这些代码抽象成一个函数,这样既可以提高代码的重用性,也能使代码的条理变得更加清晰,可靠性更高。
例如下面的程序语句。
def print_chris():
print("I m chris,and Ilove python.")
print("I fell so happy when I m coding.")
def是一个关键字,表明这是一个函数定义,该函数的名称是print_chris。
Python以def开头来定义函数,基本格式如下。
def函数名(形参列表):
函数体
return表达式
基于上述格式,对函数定义的规则进行如下说明。
四、Python函数
2.函数的定义方法
(1)定义函数使用关键字def,后跟函数名与括号内的形参列表。函数语句从下一行开始,函数内容以冒号起始并缩进。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
(2)函数名的命名规则与变量名的规则相同。字母、数字和一些标点符号是合法的,但第一个字符不能是数字;不能使用关键字作为函数名,应避免变量和函数同名。
(3)函数名称后面的空括号表示此函数不接受任何参数。稍后将构建以参数作为输入的函数。
(4)函数定义的第一行称为标题,其余部分称为函数体。标题必须以冒号结尾,且正文必须缩进。按照惯例,缩进是4个空格。正文可以包含任意数量的语句。例如下面的程序语句。
def print_chris():
print("I m chris,and I love python.")
print( I fell so happy when I m coding. )
一旦定义了一个函数,也可以在另一个函数中使用它。例如,要重复前面的内容,可以编写一个名为repeat_chris的函数。
def repeat_chris():
print_chris()
print_chris()
四、Python函数
3.调用函数
将2.函数的定义方法的代码片段放在一起,整个程序如下。
def print_chris():
print("I m chris,and I love python.")
print( I fell so happy when I m coding. )
def repeat_chris():
print_chris()
print_chris()
调用repeat_chris函数如下,通过函数名及参数就可以进行函数的调用。
repeat_chris()
I m chris,and I love python.
I fell so happy when I m coding.
I m chris,and I love python.
I fell so happy when I m coding.
该程序包含两个函数定义:print_chris()和repeat_chris()。函数定义像其他语句一样被执行,但效果是创建函数对象。函数内部的语句在函数被调用之前不会被执行,且函数定义不会产生任何输出。
必须先创建一个函数,然后才能执行它。换句话说,函数定义必须在第一次调用之前执行。
四、Python函数
4.return语句
一些函数,如数学函数,会产生结果;其他函数,如print_twice,执行操作但不返回值,称为void函数。
当调用一个有返回值的函数时,总是想对结果做些什么。例如,可以将其分配给变量或用作表达式的一部分。
x= math.cos(radians)
golden= (math.sqrt(5)+ 1)/2
在交互模式下调用函数时,Python会显示如下结果。
>>> math.sqrt(5)
2.23606797749979
但是在程序中,如果调用了一个有返回值的函数并且没有将函数的结果存储在变量中,那么返回值就会消失,如下所列。
math.sqrt(5)
上述代码计算5的平方根,但因为它不将结果存储在变量中或显示结果,所以不有用的。
void函数可能会在屏幕上显示某些内容或具有其他效果,但它们没有返回值。如果尝试将结果分配给一个变量,会得到一个名为空的特殊值 None。该值与字符串“None”不同,它是一个具有自己类型的特殊值。
四、Python函数
4.return语句
>>>result=print_twice( Bing )
Bing
Bing
>>>print(result)
None
要从函数返回结果,可以在函数中使用return语句。例如,可以创建一个非常简单的函数add_two,实现将两个数字相加并返回一个结果。
def add_two(a,b):
added=a+b
return added
x=add_two(3,5)
print(x)
上述代码执行后,print语句将打印出8,因为add_two()函数是使用3和5作为参数调用的。在函数内,参数a和b分别为3、5。该函数用于计算两个数字的总和,并将其放在名为added的局部变量中,然后使用return语句将计算值作为函数结果返回调用代码,并将其分配给变量x输出。
四、Python函数
5.匿名函数
所谓匿名,是指不再使用def语句这样标准的形式定义一个函数。例如,lambdaa,b:a+b函数会返回两个参数的和。
(1)lambda只是一个表达式,函数体比def简单很多。
(2)lambda的主体是一个表达式,而不是一个代码块。lambda表达式中仅能封装有限的逻辑。
(3)lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间中的参数。
与嵌套函数定义相同,lambda函数可以引用包含作用域中的变量。例如下面的示例。
>>> def make_incrementor(n):
return lambdax:x+ n
>>> f= make_incrementor(42)
>>> f(0)
42
>>> f(1)
43
上例用lambda表达式返回函数值,还可以把匿名函数用作传递的实参。例如下面的示例。
pairs= [(1, one ),(2, two ),(3, three ),(4, four )]
pairs.sort(key=lambdapair:pair[1])
pairs
本程序的输出结果如下。
[(4, four ),(1, one ),(3, three ),(2, two )]
四、Python函数
6.变量的作用域
1)作用域的概念
作用域是一个 Python程序可以直接访问命名空间的正文区域。
在Python程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到该变量,否则会报未定义的错误。程序的变量并不是在哪个位置都可以访问的,访问权限取决于这个变量赋值的位置。
变量的作用域决定了哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有以下4种。
(1)L(Local)。它位于最内层,包含局部变量,如一个函数或方法内部。
(2)E(Enclosing)。它包含了非局部(non-local)也非全局(non-global)的变量。例如,两个嵌套函数,一个函数(或类)A中又包含了另一个函数B,那么对于B中的名称来说,A中的作用域就为non-local。
(3)G(Global)。当前脚本的最外层,如当前模块的全局变量。
(4)B(Built-in)。它包含了内建的变量、关键字等,最后被搜索。
作用域的访问顺序为 L—E—G —B。在局部找不到时,便会去局部外的局部找(如闭包)。
四、Python函数
6.变量的作用域
2)局部变量和全局变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的变量拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
调用函数时,所有在函数内部声明的变量名称都将被加入作用域中。例如下面的示例。
total= 0
#全局变量total
def sum(arg1,arg2):
#返回2个参数的和
total= arg1 + arg2
#局部变量total
print("函数内是局部变量:",total)
#输出局部变量total的值
return total
sum(10,20)
#调用sum函数
print("函数外是全局变量:",total)
#输出全局变量total的值
程序运行结果如下所列。
函数内是局部变量:30
函数外是全局变量:0
五、模块
Python语言中的模块(module)是一个以.py结尾的包含变量、函数或类的定义的 Python文件,也包含了 Python对象定义和 Python语句。在大型系统中,通常是将系统功能分别使用多个模块来实现,或是把常用的功能集中在一个或多个模块文件中,然后在系统顶层的主模块文件或其他文件中导入使用。Python自身也提供了大量的内置模块,如 math模块等。
1.导入模块
变量和函数需要先定义,然后才可以调用。对于模块来说,则需要先进行导入,然后才能使用其中的变量和函数。
1)import语句
import语句可用于导入整个模块,在模块导入后,包含在模块中的对象采用“模块名称.对象名称”的方式进行引用。其基本格式如下。
import<模块名>
五、模块
1.导入模块
2)from…import*语句
from…import*语句可用于导入整个模块的全局变量和函数。在全局对象导入后,直接采用对象名的方式进行引用。其基本格式如下。
from<模块名> import *
3)使用as给模块指定别名
在模块引入过程中,有些模块的名称较为复杂(如tensorflow、numpy、matplotlib等),在引入过程中会增加引入的难度和程序的冗余度。为了降低引入的难度和增加程序的可读性,Python引入了as模块对引入的模块名称进行简化处理。其基本格式如下。
import<模块名> as 模块简写
五、模块
2.random 模块
random 是 Python标准库中的一个模块,它提供了生成随机数的功能。具体来说,它包含了各种用于生成随机数的函数、类和变量。
1)random 模块的导入
结合上面模块的导入方法可知,random 模块的导入有以下三种方法。
(1)import random。
例如下面的程序代码。
>>> import random
>>> random.randint(12,21)
其运行结果如图7-15所示。
图7-15 运行结果1
五、模块
2.random 模块
1)random 模块的导入
(2)from random import *。
例如下面的程序代码。
>>> from random import *
>>> randint(12,21)
其运行结果如图7-16所示。
(3)import random as A 。
说明:A 可以替换为其他任意别名。
例如下面的程序代码。
>>> import random as A
>>> A.randint(12,21)
其运行结果如图7-17所示。
图7-16 运行结果2
图7-17 运行结果3
五、模块
2.random 模块
2)random 模块常用函数
在随机模块random 中提供了大量与随机数和随机函数相关的对象,包括返回随机数的函数,可以用于模拟或产生任意随机数序列。事实上,所产生的随机数都是伪随机数,具体见表7-10。
表7-10 随机模块random 常用方法及功能
五、模块
3.turtle库
turtle库是 Python语言中自带的一个用于绘制图像的函数库。turtle库为使用者提供一个或多个小海龟作为画笔,用户可通过turtle库提供的各种方法去控制小海龟在一个平面直角坐标系中移动并绘制移动轨迹以画出想要的图案。
1)创建窗体函数
窗体函数写法如下。
turtle.setup(width,height,startx,starty)
turtle.setup()函数需要与turtle.done()配合使用,否则运行出的窗口会消失。因此,done()函数需要在绘制程序的最后面。例如下面示例。
import turtle
turtle.setup(280,200,50,50)
turtle.done()
其运行结果如图7-18所示。
图7-18 运行结果4
五、模块
3.turtle库
2)画笔函数
turtle的画笔函数见表7-11。
表7-11 turtle的画笔函数及描述
六、文件和异常处理
1.文件的打开和关闭
1)文件的打开
在Python中,可以使用open()函数来打开文件。该函数接收两个参数:要打开的文件名(包括路径)和模式。常见的模式有 r (只读)、 w (写入并清空原内容)、 a (追加到文件末尾)等。
下面是一个简单的示例代码。
# 打开文件进行读取操作
file= open( example.txt , r )
content= file.read()
print(content)
file.close()
open()方法的返回值是一个file对象,可以将它赋值给一个变量(文件句柄)。其基本语法格式为如下。
f=open(filename,mode)
其中,filename表示文件名称,mode表示打开模式。
六、文件和异常处理
1.文件的打开和关闭
1)文件的打开
打开方式参数有以下几种。
(1)r。它以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式。
(2)w。它打开一个文件只用于写入,如果该文件已存在则将其覆盖;如果该文件不存在,则创建新文件。
(3)a。它打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入已有内容之后;如果该文件不存在,则创建新文件进行写入。
(4)r+:打开一个文件用于读写,文件指针将会放在文件的开头。
(5)w+:打开一个文 件 用 于 读 写,如 果 该 文 件 已 存 在 则 将 其 覆 盖;如 果 该 文 件 不 存 在,则 创建新文件。
(6)a+:打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾,文件打开时会是追加模式;如果该文件不存在,则创建新文件用于读写。
六、文件和异常处理
1.文件的打开和关闭
2)文件的关闭
在Python中,当使用open()函数打开一个文件时,应当在完成对文件的操作后及时关闭,以确保文件被正确地关闭并释放系统资源。此时可以使用close()方法来关闭文件。
下面是一个简单的示例代码。
# 打开文件
file= open("example.txt","w")
# 向文件中写入内容
file.write("Hello,world! \n")
file.write("This is an example.")
# 关闭文件
file.close()
在上面的代码中,使用open()函数打开了一个名为example.txt的文件,并使用 write()方法向文件中写入两行文本。最后,使用close()方法关闭了文件。
六、文件和异常处理
2.文件的读写
1)Python文件的读取
表7-12介绍了 Python中读取文件的相关方法。
表7-12 Python文件的读取方法
六、文件和异常处理
2.文件的读写
1)Python文件的读取
如果文件很大,一次性读取整个文件可能会占用大量内存。在这种情况下,可以使用readline()或readlines()方法逐行或逐行批量读取文件内容,也可以使用for循环逐行读取。例如下面示例。
# 打开文件
file= open("example.txt","r") # 以只读模式打开example.txt文件
# 逐行读取文件内容
with file: # 使用 with语句自动管理文件的打开与关闭
for line in file: # 逐行读取文件内容
print(line) # 输出每一行内容
在上面的代码中,使用了 with语句来自动管理文件的打开与关闭。
2)Python文件的写入
在 Python中,写入文件的方式是调用open()函数,以指定模式(例如写入)打开文件,然后使用write()、writelines()、writeline()或print()方法来写入文件内容。其中,write()方法可以将字符串写入文件,而 writelines()方法可以将字符串列表写入文件,writeline()方法可以将一行字符串写入文件,print()方法可以将任何类型的值转换为字符串形式,并将其写入文件中。
六、文件和异常处理
3.异常处理
异常即指一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是 Python对象,表示一个错误。
当 Python脚本发生异常时要捕获处理它,否则程序会终止执行。
1)使用try/except语句
try/except语句用来检测try语句块中的错误,然后让except语句捕获异常信息并处理。如果不想在异常发生时结束程序,只需在try里捕获它。
以下为简单的try…except…else的语法结构。
六、文件和异常处理
3.异常处理
1)使用try/except语句
在右面的示例中,尝试执行除法运算,但是除数为0会引发 ZeroDivisionError异常。在except语句块中,捕获了这个异常,并打印了一条错误信息。
try:
<语句> #运行别的代码
except<名字>:
<语句> #如果在try部分引发了 name 异常
except<名字>,<数据>:
<语句> #如果引发了 name 异常,获得附加的数据
else:
<语句> #如果没有异常发生
下面是一个简单的示例。
try:
# 尝试执行的代码
x= 1/0
except ZeroDivisionError:
# 捕获和处理异常
print("除数为零错误")
六、文件和异常处理
3.异常处理
1)使用try/except语句
try语句的工作原理如下。
(1)当开始一个try语句后,Python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
(2)如果当try语句后的语句执行时发生异常,Python就跳回到try语句并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
(3)如果在try语句后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try语句,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
(4)如果在try语句的子句执行时没有发生异常,Python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
2)用except带多种异常类型
(1)try…except…else。
在 Python中,也可以使用相同的except语句来处理多个异常信息,其结构如下所列。
六、文件和异常处理
3.异常处理
2)用except带多种异常类型
(1)try…except…else
在右面的示例中,尝试执行除法运算。如果除数为0或非数字,会捕获ZeroDivisionError异常或ValueError,并将结果设置为0。如果没有异常发生,会执行else语句块,将结果乘以2。
try:
正常的操作
...
except(Exception1[,Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
...
else:
如果没有异常执行这块代码
try:
result=10/int(input("输入除数:"))
except(ZeroDivisionError,ValveError) #捕获两种异常
print("错误,除数不能为0或非数字!")
result=0
else:
result*=2
print("结果:",result)
六、文件和异常处理
3.异常处理
2)用except带多种异常类型
(2)try…except…else…finally。
在 Python中,try…except…else…finally语句是一种完整的异常处理结构。它包括以下几个部分。
①try。try用于尝试执行的代码块。
②except。except用于捕获和处理异常的代码块。
③else。else在没有异常发生时执行的代码块。
④finally。无论是否有异常发生都会执行的代码块。
六、文件和异常处理
3.异常处理
2)用except带多种异常类型
(2)try…except…else…finally。
下面是一个简单的示例。
try: # 尝试执行的代码
result= 10/2
except ZeroDivisionError: # 捕获和处理异常
result= 0
else: # 如果没有异常发生,执行else代码块
result*= 2
finally: # 无论是否有异常发生都会执行的代码块
print("Finally block executed.")
在上面的示例中,无论是否发生异常,都会执行finally语句块。在发生除数为0的异常时,result会被设置为0,否则会被乘以2。最后,无论结果如何,都会打印出“Finally block executed.”这条信息。
课后习题
一、是非选择题(对的选 A,错的选 B。)
1.Python中的注释以#符号开头。 (A B)
解析:在 Python中,注释用于为代码添加说明或暂时禁用某段代码。注释以#符号开头,其后可以是任何文本。解释器会忽略注释,将其视为纯文本。
2.Python中的缩进是可选的,不影响代码的执行。 (A B)
解析:Python中的缩进非常重要,它用于表示代码块的结构。不同的代码块通过缩进进行区分,没有正确的缩进会导致语法错误。
3.在 Python中,使用if语句可以执行条件判断。 (A B)
解析:在 Python中,if语句根据条件执行不同的代码块。它允许根据特定条件的结果来控制程序的流程。通过使用if语句,可以根据条件的不同选择执行不同的代码路径。



一、是非选择题(对的选 A,错的选 B。)
4.在 Python中,del关键字用于删除变量。 (A B)
解析:del关键字在Python中用于删除变量、对象或者属性。
5.在 Python中,for循环可以遍历字符串中的每个字符。 (A B)
解析:使用for循环可以遍历字符串中的每个字符。例如,使用语句“for char in string_name:”可以遍历名为string_name的字符串中的每个字符。
6.在 Python中,模块可以包含可执行代码。 (A B)
解析:Python中的模块是一个包含Python定义和语句的文件,它可以包含可执行的代码,这些代码在模块被导入时会自动执行。



一、是非选择题(对的选 A,错的选 B。)
7.在 Python中,所有数据类型都可以进行算术运算。 (A B)
解析:Python中的一些数据类型,例如字符串,不能直接进行算术运算。字符串主要用于表示文本数据,而不是数值数据。因此,对字符串进行算术运算会导致错误。
8.Python中的变量名可以包含空格。 (A B)
解析:Python中的变量名不能包含空格。变量名应由字母、数字或下划线组成,且不能以数字开头。使用空格是不正确的语法,会导致解析错误。
9.Python中的函数可以没有返回值,即可以不使用return语句。 (A B)
解析:Python中的函数可以不返回任何值。如果函数不需要返回任何特定的数据,可以省略return语句或只在函数体中使用return而不指定任何值。在这种情况下,函数将返回 None作为默认值。



一、是非选择题(对的选 A,错的选 B。)
10.在 Python中,使用==运算符可以比较两个字符串的内容是否相等。 (A B)
解析:在 Python中,==运算符用于比较两个值是否相等。对于字符串,它可以比较两个字符串的内容是否完全相同,包括每个字符和它们的顺序。
11.使用range()函数不可以生成一个数字序列。 (A B)
解析:在 Python中,range()函数用于生成一个数字序列。它接受三个参数:起始值、结束值和步长(可选)。range()函数返回一个迭代器对象,可用于循环结构(如for循环)中,生成连续的数字序列。
12.Python中的字符串是可变的,可以进行修改操作。 (A B)
解析:Python中的字符串是不可变 的,这意味着一旦创建了一个字符串对象,它的内容就不能被修改。如果需要修改字符串中的某个字符,需要创建一个新的字符串对象,而不是直接修改原有对象。这种设计使得字符串操作相对安全和高效。



一、是非选择题(对的选 A,错的选 B。)
13.Python中的逻辑运算符有and、or和not。 (A B)
解析:在 Python中,逻辑运算符用于进行逻辑运算和处理布尔值。这些运算符包括and(逻辑与)、or(逻辑或)和 not(逻辑非)。它们用于组合或反转布尔表达式的结果,并根据逻辑关系执行条件判断和逻辑运算。
14.在 Python中,使用print()函数可以输出文本到控制台。 (A B)
解析:在 Python中,print()函数用于在控制台输出文本或其他数据类型的内容。它是标准输出流的一部分,允许将信息显示给用户或记录到日志文件中。通过使用 print()函数,可以方便地将数据输出到控制台进行调试或展示结果。
15.Python中的函数可以返回一个值。 (A B)
解析:Python函数可以通过使用return语句返回一个或多个值,这些值可以有多种类型。



二、单项选择题
1.下列 Python代码中,可以输出"Hello,World!"的是 。
A.print("Hello,World!") B.print("Hello,World")
C.print("Hello,","World!") D.print("Hello","World")
A
解析:在 Python中,使用 print()函数输出文本或其他数据类型。正确的输出语句应为print("Hello,World!"),其中双引号括起来的文本将被输出到屏幕上。
2.下列 符号用于在 Python中定义一个空列表。
A.{} B.() C.[] D.None
C
解析:在 Python中,定义一个空列表的语法是使用方括号[]。
二、单项选择题
3.在 Python中,以下 说法是正确的。
A.if语句必须指定else部分
B.if语句可以选择是否指定else部分
C.if语句只能用于条件判断,不能用于控制流程
D.if语句不能与else部分一起使用
B
解析:在 Python中,if语句可以选择是否指定else部分。如果条件为真,则执行if块中的代码;如果条件为假,则不执行任何操作,控制流将跳过整个if…else结构。
4.Python函数可以返回 类型的值。
A.只能是数字或字符串 B.只能是列表或元组
C.只能是字典或集合 D.任何类型的值都可以返回
D
解析:在 Python中,函数可以返回任何类型的值,包括数字、字符串、列表、元组、字典、集合等。例如,一个函数可以返回一个数字作为计算结果,也可以返回一个列表作为结果集。
二、单项选择题
5.以下 的 Python内置函数用于将字符串转换为整数。
A.int() B.string() C.to_int() D.str()
A
解析:Python内置函数“int()”用于将字符串转换为整数。其他选项中,“string()”是将字符串转换为字符串类型,“to_int()”不是 Python内置函数,“str()”是将其他类型对象转换为字符串。
6.以下 运算符用于连接两个字符串。
A.+ B.& C.* D./
A
解析:在 Python中,使用加号“+”运算符来连接两个字符串。其他选项中,“&”通常用于位运算符,“*”用于乘法运算符或重复字符串,“/”用于除法运算符。
二、单项选择题
7.Python中的if语句可以包含多个条件表达式,它们的执行顺序是 。
A.从上到下 B.从下到上
C.随机 D.根据条件的真假
D
解析:在 Python中,if语句中的条件表达式按照条件的真假进行判断和执行。如果某个条件表达式为 True,则执行对应的代码块,并且不会继续判断其他条件表达式。因此,执行顺序取决于条件的真假。
8.在 Python中,函数的作用域是 。
A.函数内部定义的所有变量都可以在函数外部访问
B.函数内部定义的变量只能在函数内部访问
C.函数内部的变量可以在函数外部和全局作用域中访问
D.函数的作用域自动扩展到整个程序
B
解析:在 Python中,函数的作用域是指函数内部定义的变量的可见性。在函数内部定义的变量是局部变量,只能在函数内部访问。如果试图在函数外部访问这些变量,将会引发错误。
二、单项选择题
9.以下 关键字用于将一个模块导入到当前程序中。
A.import B.include C.load D.require
A
解析:在 Python中,使用import关键字来导入一个模块,以便在当前程序中使用该模块中的函数和变量。例如,import math将导入math模块,然后就可以使用 math模块中的函数和变量了。其他选项中,include、load和require都不 是 Python中用于导入模块的关键字。
10.以下 表达式可用于调用一个名为 my_function的函数。
A.my_function() B.call my_function()
C.invoke my_function() D.execute my_function()
A
解析:在 Python中,要调用一个函数,只需要在函数名后面加上括号即可。不需要使用特定的关键字来调用函数。例如,要调用一个名为 my_function的函数,可以使用表达式 my_function()。
二、单项选择题
11.以下 表达式可用于返回一个函数的值。
A.return B.sendto output
C.giveto function output D.is returned by function
A
解析:在Python中,返回一个函数的值,要使用return语句。return语句后面直接跟着要返回的值,例如return result。
12.以下 不是 Python函数的组成部分。
A.函数名 B.参数列表
C.定义语句 D.注释行
D
解析:在 Python中,一个完整的函数通常包括三个部分:函数名、参数列表和定义语句(def)。注释行虽然可以帮助解释代码的功能和作用,但不是 Python函数的组成部分。它们只是为了提高代码可读性而添加的说明文字,不会被Python解释器执行,或在执行时被忽略。
二、单项选择题
13.在 Python中,关于变量的说法正确的是 。
A.变量是存储在内存中的数据类型
B.变量是常量的一种特殊形式
C.变量是可以存储不同类型数据的标识符
D.变量是程序中使用的预定义符号
C
解析:在 Python中,变量是一种存储不同类型数据的标识符。它可以存储整数、浮点数、字符串、列表等不同类型的数据。
14.Python中,下列 方式不能打开一个文件或修改其内容。
A.open() B.read() C.write() D.close()
D
解析:在 Python中,使用 open()函数打开文件,使用read()方法读取文件内容,使用 write()方法将数据写入文件。读取文件后,需要使用close()方法关闭文件。
二、单项选择题
15.以下关于字符串的说法中,正确的是 。
A.字符串可以被修改
B.字符串是不可变的
C.字符串的内容可以通过索引进行修改
D.字符串的内容可以通过切片进行修改
B
解析:Python中的字符串是不可变的,这意味着一旦创建了一个字符串对象,它的内容就不能被修改。因此,B项是正确的。虽然可以通过索引或切片来访问字符串中的字符,但不能直接修改这些字符的值。若要修改字符串中的部分内容,需要创建一个新的字符串对象。
三、填空题
1.在 Python中,表示浮点数的数据类型是 。
2.在 Python中,要打开一个文件进行读取或写入操作,应使用 函数。
3.在 Python中,使用 操作符来指定多个条件的逻辑关系。
4.定义一个函数时,函数名后面的括号内可以包含 ,这些被称为函数的参数。
5.在 Python中,表示空值的数据类型是 。
6.在 Python中,表示元组的数据类型是 。
7.如果想要检查一个变量x是否等于10,并且执行一些操作,应该使用if 。
8.在 Python中,可以使用逗号分隔的多个表达式在一个行上编写代码,被称为 结构。这种结构可以简化代码并提高可读性。
tuple
open
x==10:
多重赋值或序列解包
float
and或or或not或逻辑运算符
参数名
None
三、填空题
9.在 Python中,使用特殊字符\b表示 。
10.在 Python中,使用 操作符来重复执行一段代码指定的次数。
11.在 Python中,要判断一个数是否为偶数,可以使用取模运算符 。如果结果为0,则该数是偶数,否则是奇数。
12.在 Python中,访问列表元素的语法是使用索引,索引从 开始。
13.Python中的异常处理使用 结构来捕获与处理异常。
14.在 Python中,表示列表的数据类型是 。
15.在 Python中,用于返回函数结果的关键字是 。
return
for
list
退格符
%
0
try和except
四、程序填空题
1.使用 Python程序按顺序打印列表中的所有元素。请完善下列程序。
numbers= [5,8,2,9]
index=0
while indexprint(numbers[ ① ])
index+= ②
# 输出:5 8 2 9 引用
① 。
② 。
1
index
【解析】
①处,在 while循环中,index作为列表的索引变量,初始值为0。numbers\[index\]表示访问列表numbers中索引为index的元素。循环每次执行时,index依次为0、1、2、3,对应元素为5、8、2、9。
②处,index+=1等价于index=index+1,作用是使索引递增。若不递增,index始终为0,会导致无限循环打印第一个元素(5);若递增步长大于 1(如2),会跳过部分元素(本例中仅输出5和2)。
四、程序填空题
2.使用 Python程序变成,使程序跳过值大于30的元素(即40),按要求输出列表元素。请完善下列程序。
numbers= [10,20,30,40,50]
index=0
while indexif numbers[index]> 30:

print(numbers[index])
index+= ②
# 输出:10203050
① 。
② 。
1
continue
【解析】
①处,if numbers\[index\]>30用于判断当前元 素 是 否 大 于 30(本 例 中 40 满 足 该 条 件)。continue是循环控制语句,作用是跳过当前循环的剩余代码,直接进入下一次循环。当index=3时,元素为40(满 足 >30),执 行 continue后,会 跳 过 print(numbers\[index\]),因此40不会被打印。
②处,index+=1确保索引每次递增1,遍历列表的所有元素(索引依次为0、1、2、3、4)。若步长不为1(如2),会跳过部分元素,无法完整遍历列表(如索引0→2→4,漏掉20和40)。

展开更多......

收起↑

资源预览