版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元1
搭建开发环境任务1.1在Windows系统中搭建Python开发环境【任务目标】(1)安装Python解释器;(2)安装代码编辑器。【任务实施】1.安装Python解释器……2.安装代码编辑器……1.1Python编程工具Python交互模式IDLEVSCode了解模块、包和库1.1.1Python交互模式启动方式:在系统的“开始”菜单中选择“Python3.12”→“Python3.12(64-bit)”选项在命令提示符窗口中执行“python”命令Python交互模式支持以下快捷键或命令。(1)↑:调出使用过的上一条命令。(2)↓:调出使用过的下一条命令。(3)PageUp:调出使用过的第一条命令。(4)PageDown:调出使用过的最后一条命令。(5)Ctrl+Z、quit()、exit():退出交互模式。1.1.2IDLEIDLE(IntegratedDevelopmentandLearningEnvironment)是Python自带的集成开发环境,它既提供了交互模式,也提供了代码编辑器。1.使用IDLE交互模式2.使用IDLE代码编辑器1.使用IDLE交互模式启动方式:在系统的“开始”菜单中选择“Python3.12”→“IDLE(Python3.1264-bit)”选项IDLE交互模式中常用的快捷键如下。(1)F1:打开Python帮助文档。(2)Alt+P:调出使用过的上一条命令。(3)Alt+N:调出使用过的下一条命令。(4)Alt+/:补全已使用的标识符。连续按“Alt+/”组合键,可在多个标识符中切换。(5)Alt+3:注释代码。(6)Alt+4:取消注释代码。(7)Ctrl+]:增大缩进量。(8)Ctrl+[:减小缩进量。2.使用IDLE代码编辑器单击此处编辑母版文本样式第二级第三级第四级第五级1.1.3VSCodeVSCode是微软(Microsoft)公司开发的一款轻量级代码编辑器,可通过插件扩展为功能完备的集成开发环境,具有语法高亮、代码跳转、智能提示、自动补全、代码调试、内置Git命令等功能。
VSCode支持Python、JavaScript、Java、C/C++、TypeScript、HTML、CSS等多种程序设计语言的开发。1.打开文件夹在Windows资源管理器中,右击文件夹图标或已打开文件夹的空白位置,然后在弹出的快捷菜单中选择“通过Code打开”命令,即可启动VSCode并打开文件夹。2.将界面语言设置为简体中文VSCode界面语言默认为英文,可将其设置为中文,具体操作步骤如下。……3.新建Python程序文件在VSCode中,可用以下3种方式新建Python程序文件。(1)使用新建文本文件方式新建Python程序文件(2)使用新建文件方式新建Python程序文件(3)在“资源管理器”窗格中新建Python程序文件4.运行Python程序选择“运行”→“以非调试模式运行”命令按“Ctrl+F5”组合键1.1.4了解模块、包和库1.模块2.包3.库1.模块(1)模块的概念模块本质上是一个Python程序文件,通常以“.py”作为文件扩展名。任何符合语法规范的Python程序文件均可作为模块使用。1.模块(2)导入模块模块需要导入之后才能使用。可使用import或from…import语句导入其基本语法格式如下。importlibimportlibasvarfromlibimportfunfromlibimportfunasvarfromlibimport*例:在Python交互模式中导入pypinyin库获取汉字的拼音。2.包包用于组织模块和提供名称层级结构,可以被看作文件系统中的目录(模块则对应目录中的文件),但并不等同于目录。Python定义了两种类型的包:常规包和命名空间包。常规包通常以一个包含“__init__.py”文件的目录形式实现,且该目录下可以包含多个模块及子包。命名空间包是一种特殊的包,没有“__init__.py”文件。一个命名空间包可以由多个部分组成,每个部分为一个子包。这些子包的位置灵活,可以位于文件系统的不同路径、zip文件内,甚至是网络等Python导入系统能够搜索到的任何位置。3.库(1)库的概念库是具有相关功能的模块和包的集合。Python拥有极其丰富的库资源,这些库使得Python可以广泛应用于各个领域。Python内置的库称为标准库,无须安装即可使用。其他由个人、团体或公司提供的库称为第三方库,需要安装后才能使用。(2)使用pip命令安装第三方库在Windows系统的命令提示符窗口中,使用pip命令安装第三方库的基本语法格式如下。pipinstall库名称例如,下面的命令用于安装处理汉语拼音的pypinyin库。pipinstallpypinyin默认情况下,pip工具使用Python官方软件源,下载速度可能比较缓慢。可以使用镜像源提高下载速度,例如,下面的命令使用清华大学镜像源安装pypinyin库。pipinstall-i/simplepypinyin任务1.2用DeepSeek生成排序程序【任务目标】
文件“data.txt”中保存了若干学号和姓名数据,每行保存一组学号和姓名(用逗号分隔),使用DeepSeek生成一个Python程序,实现将数据按姓名排序后输出。【任务实施】……1.2AI大模型大模型简介使用通义灵码辅助编程使用DeepSeek辅助编程1.2.1大模型简介1.大模型的主要特点2.大模型的工作原理3.大模型的主要类型4.大模型的主要应用领域1.大模型的主要特点(1)超大规模参数量大模型通常包含数十亿甚至数千亿个参数,这些参数使得模型能够捕捉到更复杂的模式和规律。参数量越大,模型的学习能力和表达能力越强,但同时对计算资源的需求也越高。(2)强大的泛化能力由于训练数据量庞大且数据多样,大模型能够适应多种任务和场景,而无须针对每个具体任务重新设计或训练模型。这种“预训练+微调”的范式显著减少了开发成本和时间。(3)多模态支持许多现代大模型不仅限于处理单一类型的数据(如文本),还可以处理多模态数据(如图像、音频、视频等),实现跨模态的理解和生成。(4)自监督学习大模型通常采用自监督学习方法,从无标注的大规模数据中提取特征,从而减少了对人工标注数据的依赖。例如,语言大模型可以通过预测句子中的缺失单词来学习语言规则。(5)上下文理解与生成能力大模型具备较强的上下文理解能力,能够根据输入信息生成连贯、自然的输出内容,在对话系统、翻译、写作等领域表现尤为突出。2.大模型的工作原理大模型,尤其是基于深度学习技术的大型神经网络模型,其工作原理主要依赖于模拟人脑处理信息的方式。大模型通常包含数以百万计乃至更多参数,能够通过在大规模数据上进行训练来完成复杂的任务,如图像识别、自然语言处理等。大模型的工作原理简要概括如下。(1)数据输入:大模型需要大规模数据作为输入。这些数据可以是经过人工标注的标注数据,也可以是未经标注的原始数据,包括文本、图像、音频等多种形式,具体取决于模型的训练目标和应用场景。(2)特征提取:模型中的层(Layer)会逐层提取输入数据的特征。例如,在图像识别中,浅层可能会识别出边缘和颜色等基本特征,而更深的层则可能将基本特征组合成更复杂的模式,如形状或物体的一部分。(3)参数调整(训练过程):在训练过程中,模型通过对比预测结果与真实目标之间的差异来调整自身参数。这一过程通常使用反向传播算法结合梯度下降法等优化策略来实现,目的是最小化损失函数,即减小预测结果与真实目标之间的误差。(4)推理/预测:一旦训练完成,模型就可以对未见过的新数据进行预测。这个过程被称为推理。在这个过程中,模型利用已经学习到的特征来做出决策或生成内容。(5)反馈机制(可选):有些模型还包含反馈机制,允许模型根据用户或其他外部信号的反馈进一步调整和优化自己的表现。3.大模型的主要类型(1)语言大模型:专注于自然语言处理任务,如文本生成、翻译、问答、摘要生成等,典型代表有GPT(OpenAI)、DeepSeek(深度求索)、通义千问(阿里巴巴)。(2)视觉大模型:主要用于图像识别、目标检测、图像生成等任务,典型代表有CLIP(OpenAI)、ViT(Google)、DALL·E(OpenAI)。(3)多模态大模型:同时处理文本、图像、音频等多种类型的数据,实现跨模态的理解和生成,典型代表有M6(阿里巴巴达摩院)、FLAVA(FAIR)。(4)科学计算大模型:针对科学领域的特定问题,如分子模拟、气候预测、材料设计等,典型代表有AlphaFold(DeepMind)、ESMFold(Meta)4.大模型的主要应用领域(1)内容生成:文本、图像、视频等内容的自动化生成。(2)对话系统:聊天机器人、虚拟助手等应用。(3)科学研究:医药研发、基因分析、气候建模等领域。(4)教育与培训:自动化辅导、考试题生成、个性化学习计划制订。(5)金融与商业:投资分析、风险评估、客户行为预测。(6)医疗健康:疾病诊断、药物研发、健康管理。(7)文化创意:文学创作、音乐生成、艺术设计。1.2.2使用通义灵码辅助编程通义灵码是由阿里云提供的智能编码辅助工具,提供代码智能生成、智能问答、多文件修改、编程智能体等能力。通义灵码支持Java、Python、Go、C#、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala、Kotlin等主流程序设计语言支持VSCode、IntelliJIDEA、PyCharm、GoLand、LingmaIDE等多种集成开发工具。1.安装通义灵码在VSCode中安装通义灵码的操作步骤如下。(1)在侧边栏中单击“扩展”按钮,打开“扩展”窗格。(2)在搜索框中输入“灵码”,搜索通义灵码。(3)单击“安装”按钮,安装插件。2.以问答方式辅助编程在通义灵码“智能会话”窗格的输入框中输入问题,按“Enter”键,通义灵码即可根据用户的提问自动生成相应的代码3.使用自然语言生成代码在VSCode的编辑器中,使用自然语言描述需要的功能,例如,输入“#从键盘输入3个数,用逗号分隔,再按从小到大的顺序输出”,然后按“Enter”键换行,通义灵码可直接在编辑器中生成代码4.选择模型在通义灵码的“智能会话”窗格中,单击输入框左下角的下拉按钮,在弹出的下拉列表中可选择所需模型几种模型的基本特点如下。(1)Auto:自动选择模型。(2)qwen3-coder:专注于代码生成和编程辅助的模型,具备强大的代码生成能力,能够应对多种编程场景,并且支持1M(Million)token的上下文长度。(3)qwen3-thinking:Qwen3的深度思考模式,能够通过推理生成更高质量的代码,适合复杂问题问答、单元测试生成等场景。(4)qwen2.5-max:具备多模态、长文本处理能力,适合处理多模态交互、长文档、数学推理、编程等复杂任务。1.2.3使用DeepSeek辅助编程DeepSeek是一个多用途人工智能平台,不仅涵盖智能问答和文本生成等功能,还扩展到了数据分析、可视化、代码生成等多个领域。1.DeepSeek的主要功能特点(1)自然语言处理与生成DeepSeek能够理解和处理用户的自然语言查询,快速提供准确的回答。无论是简单的日常问题还是复杂的业务问题,DeepSeek都能迅速给出令人满意的答案。它还具备文本生成能力,可以撰写文章、邮件、营销文案等,支持创意写作和结构化内容生成。(2)代码生成DeepSeek可以帮助开发者快速生成代码片段,显著提高开发效率。其专门的DeepSeekCoder模型能够更准确地理解用户的编码需求,并提供高质量的代码生成服务。(3)数据分析与可视化DeepSeek支持生成数据分析代码,可执行统计分析、回归分析、聚类分析等任务,并生成可视化图表。(4)图文理解DeepSeek能够解析图片中的文字、图表、场景信息,支持图像描述、光学字符阅读器(OpticalCharacterReader,OCR)文字提取。(5)复杂任务处理DeepSeek能够解决数学问题,进行公式推导及数据分析,还能处理因果推断、逻辑判断等复杂任务。(6)垂直场景定制化DeepSeek提供针对金融、教育等领域的专业化模型定制服务,如金融报告生成、教育智能答疑系统等。(7)API与开发者支持DeepSeek提供标准化应用程序接口(ApplicationProgramInterface,API),方便开发者将模型能力集成至第三方应用,支持模型微调(FineTuning)和提示词工程优化。(8)高效推理与低成本优势DeepSeek模型采用了混合专家(MixtureofExperts,MoE)架构,提高了计算效率,实现了生成速度的大幅提升,同时保持了低推理成本。(9)个性化交互DeepSeek支持会话上下文记忆,在同一窗口内进行连贯性问题的探讨,其能记住之前交流的内容,而无须用户反复阐述背景。(10)广泛的知识储备DeepSeek的知识储备覆盖科学技术、人文艺术等多个领域,能为用户提供准确且有用的信息支持。2.使用网页版DeepSeek3.通义灵码和DeepSeek的主要区别(1)应用范围:通义灵码专注于编程领域的辅助工作,而DeepSeek则提供了跨多个领域的广泛支持。(2)核心竞争力:通义灵码的优势在于其深度优化的代码编写辅助功能,而DeepSeek则以其强大的中文语言处理技术、顶尖的代码生成能力和广泛的应用场景著称。(3)目标用户群:尽管两者都服务于专业技术人员,但通义灵码更加聚焦于软件开发者的具体需求,而DeepSeek则试图覆盖更广泛的基础用户,包括那些在非编程领域寻求AI解决方案的用户。THANKYOU反馈和建议请Email:314757906@单元2Python基本语法任务2.1编写诗词输出程序【任务目标】编写一个Python程序,输入1时,输出诗词《咏柳》;输入2时,输出诗词《静夜思》【任务实施】……2.1Python基本语法元素编码规范标识符和关键字2.1.1编码规范1.语句行2.缩进3.注释1.语句行通常,Python中的一条语句占一行。在Windows系统中,行尾以换行符“\n”结束。如果一条语句过长,Python允许使用续行符“\”实现换行,从而将语句拆分在多行中。当语句在()、[
]、{}等括号中换行时,可省略续行符。注意,续行符之后不能有任何其他字符,包括空格和注释,否则程序会报错。示例代码如下。只包含空格、制表符、换页符、注释的逻辑行称为空白行。程序运行时,Python会忽略所有的空白行。此外,Python允许使用英文分号“;”作为分隔符,从而将多条简短语句写在一行,示例代码如下。2.缩进Python使用缩进(Indentation)来表示代码块之间的层级结构。空格和制表符是缩进字符,用于在代码中添加缩进,但两者不能混用。连续的多条具有相同缩进量的语句为一个代码块。例如,if、for、while、def、class等语句末尾的英文冒号“:”表示下一级代码块的开始,此时就需要为代码添加缩进,示例代码如下。同一个代码块中的语句必须保持相同的缩进量,否则会引发缩进异常(IndentationError)。3.注释注释用于为程序添加说明性文字,帮助程序开发人员阅读和理解代码。Python中的注释分为单行注释和多行注释。单行注释以字符“#”开始,当前行中字符“#”及其后的内容为注释内容。单行注释可以单独占一行,也可以放在语句末尾。多行注释使用3个英文单引号“'''”或3个英文双引号“"""”作为注释的开始和结束符号示例代码如下。2.1.2标识符和关键字1.标识符2.关键字1.标识符标识符也称名称,用于为变量、函数、模块、类或其他对象命名。在Python3中,标识符的命名规则如下。(1)标识符可由字母、下画线“_”和数字组成,但不能以数字开头。标识符可以使用各种Unicode字符(空格、@、%、$等各种特殊符号除外)。(2)不能使用关键字作为标识符。(3)标识符区分大小写。例如,_abc、速度、r_1都是合法的标识符,而2abc、price$、import是非法的标识符,Abc和abc是两个不同的标识符。2.关键字关键字也称保留字,不允许作为普通标识符使用。Python的关键字如下。Python3.10增加了软关键字,用于特定上下文。例如,match、case和_等标识符是match语句中的软关键字。任务2.2比较输入的两个数大小【任务目标】使用input()函数提示用户输入两个数,比较其大小后,先输出较大的数,再输出较小的数【任务实施】……2.2数据的输入和输出数据的输入数据的输出2.2.1数据的输入Python使用input()函数来获取用户输入的数据其基本语法格式如下。input()函数将用户输入的内容作为字符串返回。用户按“Enter”键结束输入,按“Enter”键之前输入的全部字符均作为输入的内容,示例代码如下。input()函数返回的是字符串,如果需要通过输入获得整数或小数等数值,则应使用int()函数或float()函数进行转换,示例代码如下。2.2.2数据的输出Python使用print()函数来输出数据,其基本语法格式如下。1.输出一个空行print()函数的所有参数均可省略。无参数时,print()函数输出一个空行。2.输出一个或多个数据print()函数可同时输出一个或多个数据,示例代码如下。3.指定输出分隔符在输出多个数据时,print()函数默认使用空格作为输出分隔符,可用sep参数指定输出分隔符,示例代码如下。4.指定输出结尾符号print()函数默认以换行符作为输出结尾符号,即在输出所有数据后会自动换行,后续的print()函数将在新行中继续输出数据。可以用end参数指定输出结尾符号,示例代码如下。5.输出到文件print()函数默认输出数据到标准输出流。在交互环境中执行命令时,print()函数将数据输出到交互环境。在命令提示符窗口中运行Python程序时,程序中的print()函数将数据输出到命令提示符窗口;在IDLE中运行Python程序时,程序中的print()函数将数据输出到IDLE交互模式窗口。可用file参数指定数据的输出文件,示例代码如下。任务2.3对输入的3个数排序【任务目标】编写程序,使用input()函数提示用户输入3个数,比较其大小后,按从小到大的顺序输出【任务实施】……2.3变量变量赋值变量与对象2.3.1变量赋值赋值语句用于将数据赋值给变量,其基本语法格式如下。在一条赋值语句中,可以给单个或多个变量赋值,示例代码如下。Python允许将运算符与赋值相结合,实现增强赋值,示例代码如下。Python中的增强赋值运算符如表2-1所示。2.3.2变量与对象在Python中,对象是数据的抽象,程序中的所有数据都由对象和对象之间的关系来表示。下面通过具体示例来说明变量与对象的关系。Python在执行该语句时,会按顺序执行3个步骤:首先,创建整数对象5;然后,检查变量x是否存在,若不存在则创建变量x;最后,建立变量x与整数对象5的引用关系。将变量赋值给另一个变量,会使两个变量引用同一个对象——共享引用。为变量赋予新的值,会使变量引用新的对象。示例代码如下。当变量共享引用的对象是列表、字典或类的实例对象时,如果修改了被引用的对象,那么所有变量引用的也是改变之后的对象示例代码如下。【综合实例】自动累加器编写一个程序,完成对输入数值的自动累加操作,当输入数值为-999时,结束程序运行,程序运行结果如下。THANKYOU单元3Python数据类型任务3.1计算“奋斗者”号下潜速度【任务目标】“奋斗者”号是我国自主研发的全海深载人潜水器。2023年3月11日,“探索一号”科考船搭载“奋斗者”号载人潜水器抵达三亚,圆满完成国际首次环大洋洲载人深潜科考任务。该航次历时157天,环大洋洲航行22000余海里。航次期间,科考队在西南太平洋克马德克海沟区域开展了国际上首次大范围、系统性的载人深潜调查,并在人类历史上首次抵达东南印度洋蒂阿曼蒂那海沟开展实地观察和取样。2020年10月27日,“奋斗者”号成功下潜突破1万米。假设“奋斗者”号首次海试突破万米时用时2小时整,编写程序计算其平均下潜速度,程序运行结果如下。【任务实施】……3.1基本数据类型数字字符串3.1.1数字Python中常见的数字类型包括:整数类型(int)布尔类型(bool)浮点数类型(float)。1.整数整数类型数是不带小数点的数,简称“整数”,如123、-12、0、9999等。Python中的整数无大小限制(仅受计算机内存限制)。例如,下面的代码分别输出2的100次方和9的100次方。整数通常表示为十进制,还可以表示为二进制、八进制和十六进制。(1)二进制:以“0b”或“0B”开头,数码包括0和1,如0b101、0B11。(2)八进制:以“0o”或“0O”开头,数码包括0~7,如0o15、0O123。(3)十六进制:以“0x”或“0X”开头,数码包括0~9、A~F或a~f,如0x12AB、0x12ab。不同进制只是整数的不同表示形式,程序运行时Python会将整数处理为十进制。可以使用int()函数将整数字符串按指定进制转换为整数,其基本语法格式如下。示例代码如下。2.布尔值布尔类型是整数类型的子类型,布尔类型数(也称布尔值或逻辑值)只有True和False两种取值。布尔值作为整数使用时,True等同于数字1、False等同于数字0。将布尔值转换为字符串时,True转换为"True",False转换为"False"。可以使用type()函数查看数据类型,示例代码如下。3.浮点数浮点类型数也称浮点数,即通常所指的小数,如12.5、2.、.5、3.0、1.23e+10、1.23e-10等都是浮点数。浮点数的取值范围为-10308~10308,超出取值范围会产生溢出错误(OverflowError),示例代码如下。float()函数可将整数和字符串转换为浮点数,示例代码如下。4.数字运算5.常用的内置数字处理函数单击此处编辑母版文本样式第二级第三级第四级第五级6.math模块3.1.2字符串字符串是一种有序的字符集合,用于表示文本数据。字符串中的字符可以是各种Unicode字符。字符串中的字符从左到右,具有位置顺序,支持索引、分片等操作。1.字符串常量Python字符串常量可用下列多种方法表示。(1)单引号字符串:'a'、'123'、'abc'。(2)双引号字符串:"a"、"123"、"abc"。(3)三重单引号或三重双引号字符串:'''Pythoncode'''、"""Pythonstring"""。三重引号字符串可以包含多行字符。(4)带“r”或“R”前缀的Raw字符串:r'abc\n123'、R'abc\n123'。(5)带“u”或“U”前缀的Unicode字符串:u'asdf'、U'asdf'。Python3中字符串默认为Unicode字符串,“u”或“U”前缀可以省略。2.转义字符转义字符用于表示不能直接表示的特殊字符。Python常用转义字符如表所示。3.字符串操作(1)判断字符串包含关系运算符“in”用于判断字符串中是否包含指定字符,示例代码如下。(2)合并字符串运算符“+”或空格用于连接字符串,示例代码如下。(3)复制字符串运算符“*”用于重复输出字符串,示例代码如下。(4)字符串的索引字符串中的各个字符可通过位置进行索引。字符串中的字符按从左到右的顺序,索引值依次为0,1,2,…,len-1(最后一个字符的索引值为字符串长度减1);或者为-len,…,-2,-1。索引指通过索引值来定位字符串中的单个字符,示例代码如下。(5)字符串的切片切片指利用索引值范围从字符串中获得连续的多个字符(子字符串)。切片的基本语法格式如下。上述代码表示返回字符串x中从索引值start开始,到索引值end之前(即不包含end,遵循“左闭右开”原则)的子字符串。start和end参数均可省略,start默认值为0,end默认值为字符串长度。示例代码如下。默认情况下,切片用于返回字符串中的多个连续字符,可以通过step参数来设置步长,从而跳过中间的字符,其基本语法格式如下。用这种格式切片时,会依次跳过中间step-1个字符,step默认值为1,示例代码如下。(6)字符串处理函数4.字符串格式化在Python中,目前可使用格式化运算符“%”、format()方法和f字符串3种方式对字符串进行格式化,示例代码如下。任务3.2“唐宋八大家”人名排序【任务目标】唐代的韩愈、柳宗元和宋代的苏洵、苏轼、苏辙、欧阳修、王安石、曾巩并称“唐宋八大家”,编写一个程序,将他们的姓名按汉语拼音排序,并分别按从前到后和从后到前的顺序输出,程序运行结果如下。【任务实施】……3.2复合数据类型Python中的复合数据类型包括列表(list)、集合(set)、元组(tuple)和字典(dictionary)等。Python将可通过位置进行索引的有限有序集称为序列。序列可分为可变序列和不可变序列。可变序列对象在创建后可以改变,不可变序列对象在创建后不能改变。字符串、字节串(由字节组成的二进制序列)和元组属于不可变序列,列表和字节数组属于可变序列。序列支持索引、切片和合并等操作。3.2.1列表列表用方括号[]表示,如[1,2,'abc']。列表的主要特点如下。(1)列表可以包含任意类型的对象:数字、字符串、列表、元组或其他对象。(2)列表是有序序列:与字符串类似,列表可通过位置执行索引和切片操作。(3)列表是可变的:列表长度可变,即可添加或删除列表元素;列表元素的值也可以改变。(4)每个列表元素存储的都是对象的引用,而不是对象本身,类似C/C++中的指针。列表操作示例3.2.2集合集合主要用于保存不重复的元素。集合中的元素具有唯一、无序和不可改变等特点。集合支持数学理论中的各种集合运算。1.创建集合集合用花括号{}表示,其中的元素使用逗号分隔。也可以用内置的set()函数创建集合。注意,空集合只能使用set()函数创建,“{}”表示空字典示例代码如下。2.集合运算集合支持求长度、判断包含、求差集、求并集、求交集、求对称差和比较等运算,示例代码如下。3.集合基本操作集合支持复制、添加和删除操作,但集合中的元素不支持索引和修改操作,示例代码如下。3.2.3元组元组可以被看作不可变的列表,它具有列表的大多数特点。元组用圆括号表示,如(1,2)、('a','b','abc')。元组的主要特点如下。(1)元组可包含任意类型的对象。(2)元组是有序的:元组中的对象可通过位置进行索引和切片操作。(3)元组长度不能改变:既不能为元组添加对象,也不能删除元组中的对象。(4)元组只能包含不可变对象。(5)元组中存储的是对象的引用,而不是对象本身。1.创建元组可用元组常量或tuple()函数来创建元组,示例代码如下。2.元组基本操作3.2.4字典字典包含一系列的键值对。字典用花括号表示,如{'name':'John','age':25,'sex':'male'}。其中,字符串'name'、'age'和'sex'为键,字符串'John'、'male'和数字25为值。字典的主要特点如下。(1)字典的键通常采用字符串,也可以采用数字、元组等不可变对象。(2)字典的值可以为任意类型。(3)字典也称为关联数组或散列表,它通过键映射值。字典是无序的,它通过键来访问映射的值,而不是通过位置来索引值。(4)字典属于可变映射,可修改键映射的值。(5)字典长度可变,可为字典添加或删除键值对。(6)字典可以任意嵌套,即键映射的值可以是一个字典。(7)字典存储的是对象的引用,而不是对象本身。1.创建字典可通过多种方法来创建字典,示例代码如下。2.字典基本操作【综合实例】数据排序编写一个程序,用输入的4个数创建列表和元组,并将它们分别按从小到大和从大到小的顺序输出,程序运行结果如下。THANKYOU单元4程序控制结构任务4.1计算个人综合所得税【任务目标】已知个人综合所得税税率如表4-1所示。设周某月工资及各项扣除费用(仅供参考)如表4-2所示。编写一个程序,计算周某全年应缴纳的个人综合所得税。【任务实施】……4.1分支结构程序的基本控制结构if语句match语句4.1.1程序的基本控制结构程序的基本控制结构有:顺序结构、分支结构和循环结构。顺序结构指程序按语句的先后顺序依次执行各条语句。程序通常默认为顺序结构的,Python也不例外,其程序总是从第1条语句开始顺序执行。例如,下面的程序属于典型的顺序结构程序。分支结构指程序根据条件选择执行不同的语句块。分支结构可分为单分支结构、双分支结构和多分支结构,任务4.1中的计算个人综合所得税程序是一个典型的多分支结构程序。循环结构指程序根据条件重复执行同一个语句块,示例代码如下。4.1.2if语句if语句可实现程序的分支结构,其基本语法格式如下。if语句的elif和else部分可以省略。执行if语句时,按先后顺序依次判断各个条件表达式,若条件表达式为True,则执行相应的语句块,否则判断下一个条件表达式。若所有条件表达式均为False,则执行else部分的语句块(如果else部分的语句块存在)。if语句的执行流程
示例代码
if…else三元表达式是简化版的if语句,其基本语法格式如下。当条件表达式为True时,将表达式1的值作为if…else三元表达式的结果;否则将表达式2的值作为if…else三元表达式的结果,示例代码如下。4.1.3match语句Python中的match语句与C语言、Java中的switch语句类似,用于实现多分支结构,其基本语法格式如下。match语句将表达式的值依次与case语句中的模式进行匹配。如果匹配成功,则执行对应的分支;如果没有匹配成功,且无“case_:”语句,则不执行任何分支。“_”为通配符,可匹配任意值,即必定会匹配成功。match语句最简单的形式是将一个目标值与一个或多个字面值进行匹配,示例代码如下。任务4.2从文件中检索指定唐诗【任务目标】文件“test4_poems.txt”中按下面的格式保存了若干首唐诗。编写一个程序,根据输入的唐诗标题,从文件中检索唐诗并输出,程序运行结果如下。【任务实施】……4.2循环结构for语句while语句break语句和continue语句4.2.1for语句for语句用于实现遍历循环,适用于已知迭代次数的场景,其基本语法格式如下。其中,else部分可以省略。object是一个可迭代对象。执行for语句时,依次将object中的数据赋值给变量var(此过程称为迭代),每赋值一次就执行一次循环体。循环执行结束时,如果有else部分,则执行对应的语句块。else部分只在正常结束循环时执行,如果用break语句跳出循环,则不会执行else部分。用n表示object中数据的索引值,for语句的执行流程如图示例代码
程序运行结果
range()函数可用于生成包含连续多个整数的range对象,其基本语法格式如下。只指定参数end时,生成的整数范围为0~end-1;指定参数start和end时,生成的整数范围为start~end-1。step为整数之间的差值,默认为1。示例代码
程序运行结果enumerate()函数可用于生成包含计数器的迭代对象,示例代码如下。4.2.2while语句while语句通过条件表达式的真假控制循环,适用于迭代次数未知的场景,可构造无限循环,其基本语法格式如下。其中,else部分可以省略。while语句的执行流程如图4-3所示。如果while语句中的条件表达式始终为True,则可构造无限循环—“死循环”。使用while语句计算1+2+…+1004.2.3break语句和continue语句在for语句和while语句中,可以使用break语句和continue语句控制循环。break语句用于跳出当前循环,即提前结束循环(包括跳过else部分)continue语句用于跳过循环体剩余语句,回到循环开头开始下一次循环。例如,下面的代码在for语句中使用break语句和continue语句实现了输出100~999的前10个回文数字(3位数中个位和百位相同的数字,如101)。任务4.3处理程序中的异常【任务目标】修改下面的程序,为程序添加异常处理代码,在程序出错时输出异常信息。【任务实施】……4.3异常处理异常指程序在运行过程中发生的错误,会导致程序意外终止。异常处理可捕获程序中发生的异常,执行相应的异常处理代码,避免程序意外终止。注意,程序中的语法错误不属于异常。异常处理的基本语法格式try语句:放可能引发异常的代码放。except语句:声明捕获的异常类型,并在其语句块中编写异常处理代码。else语句:放没有发生异常时执行的代码,可以省略。程序运行时,如果try语句块中的代码触发了与except语句匹配的异常类型,则执行except语句块。finally语句块用于存放不管是否发生异常都会执行的代码,可以省略。回顾任务4.3第一次运行程序时输入正整数5,程序输出其阶乘;第二次运行程序时输入5.0,因为range()函数只接收整数作为参数,所以发生TypeError,程序执行“exceptTypeError:”语句块第3次运行程序时输入ab,循环中的range()函数等价于“range(2,ab+1)”,ab没有定义,所以发生Exceptionase异常,程序执行“exceptExceptionase:”语句块。下面的程序在发生异常时输出提示信息,并使用finally语句定义终止行为。【综合实例】输出数字金字塔编写一个程序,输出如下的数字金字塔。THANKYOU单元5函数和类任务5.1定义个人综合所得税计算函数【任务目标】定义一个函数来完成个人综合所得税的计算,然后调用该函数完成表5-1中3名员工的个人综合所得税的计算。【任务实施】……5.1函数定义和调用函数函数的参数嵌套函数递归函数lambda函数5.1.1定义和调用函数关键字def用于定义函数,其基本语法格式如下。其中,参数和返回值都可省略。函数有多个参数时,参数之间用逗号分隔。调用函数的基本语法格式如下。函数的调用必须出现在定义之后。在Python中,函数的本质是对象(function类型实例)。def语句在执行时会创建一个函数对象,函数名是绑定到该函数对象的变量,因此可将函数名赋值给其他变量,使这些变量指向同一个函数对象示例代码如下5.1.2函数的参数定义函数时的参数称为形式参数,简称形参;调用函数时的参数称为实际参数,简称实参。实参可以是常量、变量或表达式,当实参是常量或表达式时,会将常量或表达式的计算结果传递给形参;当实参是变量时,会将对象的引用赋值给形参,使实参和形参指向同一个对象。1.关键字参数默认情况下,调用函数时按形参声明的先后顺序,依次将实参传递给形参。例如,调用add(1,2)时,1传递给a,2传递给b。可通过“形参名=值”的形式将实参传递给形参,此时的实参可称为关键字参数。使用关键字参数时,因为指明了形参名称,所以实参传入的先后顺序已无关紧要。2.参数传递与共享引用当变量作为实参传入函数时,形参和实参会同时指向同一个对象(共享引用)。此时,若在函数中通过形参修改了对象,实参所引用的对象内容也会随之改变,示例代码如下。3.有默认值的可选参数定义函数时,可为参数设置默认值。调用函数时如果未提供实参,则形参取默认值。有默认值的参数为可选参数,在定义函数时,可选参数应放在参数表的末尾,示例代码如下。4.接收任意个数的参数定义函数时,在参数名前面使用“*”,表示可接收任意个数的参数,将其作为一个元组赋值给形参,示例代码如下。5.必须作为关键字参数使用的形参在调用函数时,带“*”的形参之后的形参,只能作为关键字参数,示例代码如下。5.1.3嵌套函数嵌套函数是指在一个函数内部定义另一个函数。嵌套函数只能在定义它的函数的内部使用,示例代码如下。5.1.4递归函数递归函数是指在函数体内调用函数本身的函数。例如,下面的递归函数fac()用于计算阶乘。5.1.5lambda函数lambda函数也称表达式函数或匿名函数,是通过关键字lambda定义的单一表达式函数。它可被赋值给变量,此时变量成为该函数的引用,通过变量名即可调用该函数。定义lambda函数的基本语法格式如下。定义并调用lambda函数的示例代码如下。任务5.2用类处理诗词【任务目标】定义一个类来处理诗词,诗词信息包括标题、类型(唐诗、宋词或元曲)、作者和内容。【任务实施】……5.2类定义和使用类对象的属性派生类关键字class用于定义类,其基本语法格式如下。其中:赋值语句为类定义数据属性,def语句定义的函数是类的方法属性,这两种语句的先后顺序不影响程序运行示例代码class语句在执行时创建一个类对象,类名用于引用该对象。使用类对象可访问类的数据属性和方法属性,也可创建类的实例对象。实例对象拥有类的全部数据属性和方法属性。在定义类时,方法的第1个参数名称通常为“self”,也可以使用其他的名称。在调用方法时,实例对象作为第1个参数被传递给方法,以便在方法中访问实例对象的各种属性。__init__()是类的特殊方法属性——初始化方法,在创建实例对象时调用,用于执行初始化操作。5.2.2对象的属性Python总是在第一次给变量赋值时创建变量。对于类对象和实例对象,当给不存在的属性赋值时,Python为对象创建属性。5.2.3派生类在面向对象编程中,派生类是指从一个已有的类(称为基类或父类)继承而来的类。派生类可以继承父类的属性和方法,同时还可以扩展或修改这些属性和方法,甚至添加新的属性和方法。定义派生类的基本语法格式如下。示例代码【综合实例】用对象处理学生数据编写一个程序,定义一个类来表示学生,包含姓名和年龄信息,定义一个方法将学生信息转换为“姓名,年龄”格式字符串输出。程序运行时输入学生姓名(输入N结束程序)、年龄,若输入的学生姓名已存在,则用新的输入更新学生年龄。在一行输出当前全部学生信息。THANKYOU单元6文件操作任务6.1从文件中读取唐诗目录【任务目标】文件“test6_01.txt”中按下面的格式保存了若干首唐诗。编写一个程序,从上述文件中读取唐诗目录,程序运行结果如下。【任务实施】……6.1文件读写读写文本文件读写CSV文件文件是操作系统管理和存储数据的基本单位。Python使用文件对象来读写文件。通常,文件可分为文本文件和二进制文件。(1)文本文件指以字符编码(如UTF、GBK等)方式保存的文件,字符编码用于将字符集中的字符映射为计算机可以识别的二进制数据,常见字符集有ASCII、GB2312、Unicode等。一个文本文件只能保存其所用字符集包含的字符。Python通常按字节读取文本文件中的字符,一个字符占用的字节数由字符编码定义。(2)二进制文件指以数码0、1形式保存数据的文件(文本文件本质上保存的也是二进制数据),通常所说的二进制文件指用于保存图像、音频和视频等数据的文件。6.1.1读写文本文件open()函数用于打开文件,并返回文件对象,通过该对象可以执行各种文件操作。open()函数的基本语法格式如下。其中:f为引用文件对象的变量;filename为文件名,可包含相对路径或绝对路径,省略文件路径时,Python在当前工作目录中搜索文件;mode为文件读写模式。(1)常用文件读写模式①r:只读模式,默认模式。②w:只写模式,以此模式创建新文件时,若文件已存在,则原来的文件被覆盖。③t:按文本文件格式读写文件数据,默认格式。④b:按二进制文件格式读写文件数据。“t”“b”可与“r”“w”组合使用,常用组合如下。①rt:文本文件格式、只读模式,默认读写模式,等同于“r”。例如,open('data.txt','rt')。②wt:文本文件格式、只写模式,等同于“w”。例如,open('data.txt','wt')。(2)常用文件对象方法①f.close():关闭文件。②f.read():将从文件指针位置开始到文件末尾的字符作为一个字符串返回。③f.read(n):将从文件指针位置开始的n个字符作为一个字符串返回。④f.readline():将从文件指针位置开始到下一个换行符(包括换行符)的字符作为一个字符串返回。⑤f.readlines():将从文件指针位置开始到文件末尾的字符作为一个列表返回,每一行的字符串作为一个列表元素。⑥f.write(xstring):在文件指针位置写入字符串,返回写入的字符个数。⑦f.writelines(xlist):将列表中的数据合并为一个字符串写入文件指针位置,返回写入的字符个数。⑧f.seek(n):将文件指针移动到第n+1个字符,n为0表示文件指针指向文件开头的第1个字符。⑨f.tell():返回文件指针指向的位置。示例代码6.1.2读写CSV文件CSV文件是纯文本文件,通常包含多条记录数据,第1行通常为记录的各个字段名称,从第2行开始为记录数据。每条记录包含相同的字段,字段之间用分隔符分隔。csv模块中的reader和writer对象可用于读写CSV文件示例代码任务6.2学生信息分类【任务目标】文件“studata.csv”中按下面的格式保存了若干学生信息。编写一个程序,从上述文件中读取学生信息,按教学点分别创建文件夹,文件夹中存放当前教学点不同专业的学生信息,每个专业的学生信息放在一个文件中,文件以专业名称命名。【任务实施】……6.2文件管理使用os模块使用shutil模块6.2.1使用os模块os模块提供了许多操作系统接口方法,包括文件和文件夹操作、环境变量访问等1.os.getcwd()os.getcwd()方法返回Python的当前工作目录,示例代码如下。2.os.mkdir()os.mkdir()方法用于创建子目录,示例代码如下。注意:Python对不同操作系统的路径分隔符“\”(Windows系统)和“/”(Unix类系统)做了兼容处理,在解析路径时会自动识别两种路径分隔符,并根据当前运行的操作系统进行转换。由于“\”在Python字符串中是转义字符(如\n表示换行),作为路径分隔符时,需要使用“\\”进行转义。为了减少转义错误,在代码中更推荐使用“/”作为路径分隔符。3.os.rmdir()os.rmdir()方法用于删除指定的空子目录,示例代码如下。注意,os.rmdir()方法只能删除空子目录,删除非空子目录时会出错,示例代码如下。4.os.listdir()os.listdir()方法返回指定目录包含的所有子目录和文件名称,示例代码如下。5.os.chdir()os.chdir()方法用于切换当前工作目录,示例代码如下。6.os.remove()os.remove()方法用于删除指定文件,示例代码如下。7.os.rename()os.rename()方法用于重命名文件,示例代码如下。6.2.2使用shutil模块shutil模块在os模块的基础上提供了更高级的文件和文件夹操作功能,如复制、移动文件等1.复制文件的内容和权限copy(a,b)用于复制文件的内容和权限。其中:a是源文件名,b是目标文件名或文件夹名。当b是文件夹名时,将文件a复制到该文件夹中,文件名不变注意:当函数中的输入路径不完整(如仅输入目录,需补充文件名)时,函数会优先使用操作系统的原生路径分隔符拼接路径,因此输出结果中会体现该分隔符;当函数中的输入路径完整时,无需拼接路径,输出结果中会保留输入中的路径分隔符。此外,与操作系统直接相关的函数(如os.getcwd()),会严格遵循当前系统的原生路径分隔符。示例代码2.复制文件的内容、权限、元数据copy2(a,b)用于复制文件的内容、权限、元数据(包括访问时间、修改时间、作者等),示例代码如下。3.复制文件内容copyfile(a,b)用于将a文件的内容复制到b文件中,a和b必须是文件,不能是文件夹,且b有写入权限,示例代码如下。4.复制文件夹copytree(a,b)用于将文件夹a的全部内容复制到新建的文件夹b中,示例代码如下。如果b已经存在,则程序会出错。5.移动文件和文件夹move(a,b)用于将文件或文件夹a移动到目标文件夹b中,示例代码如下。如果b中存在同名文件或文件夹,则程序会出错。6.删除文件夹rmtree(a)用于删除文件夹a,示例代码如下。7.创建压缩文件make_archive(base_name,format,root_dir,base_dir)用于创建压缩文件。其中:base_name是压缩文件名;format为压缩格式,可以是zip(如果zlib模块可用)、tar、gztar(如果zlib模块可用)、bztar(如果bz2模块可用)或xztar(如果lzma模块可用);root_dir是保存压缩文件的目录,也是被压缩文件或文件夹的根目录;base_dir是被压缩文件的起始目录,也是root_dir下的子文件夹。示例代码8.解压缩文件unpack_archive(filename,extract_dir,format)用于解压缩文件。其中:filename为压缩文件名extract_dir为解压缩后文件的保存文件夹(默认为当前文件夹)format为压缩格式(默认为压缩文件的格式)。示例代码如下。【综合实例】报名表分类文件“studata.csv”中按下面的格式保存了若干学生信息。文件夹“pics”中保存了对应学生的报名表,报名表以“学号.gif”格式命名。按教学点分别创建文件夹,文件夹中存放当前教学点学生的报名表,报名表以“专业_姓名_学号.gif”格式重新命名,所有教学点文件夹放在名为“教学点报名表”的文件夹中。THANKYOU单元7数据处理任务7.1导入Excel文件数据【任务目标】文件“data1.xlsx”中的工作表“Sheet1”保存了“唐宋八大家”的相关信息,使用pandas导入文件数据,并输出前3行数据。【任务实施】……7.1数据处理基础创建数据对象数据的基本运算数据处理相关的属性和方法数据的索引和切片数据的导入和导出安装pandas。在程序中,可使用以下命令导入pandas。pandas的Series对象和DataFrame对象是数据处理过程中两个重要的数据结构。Series对象也称“序列”,用于存储和处理一维数据,类似Excel二维表格中的一行或一列。Series对象由一组数据和与数据相关的索引组成,可以存储和处理整数、浮点数、字符串、Python对象等多种类型的数据。DataFrame对象也称“数据框”,用于存储和处理二维数据,类似Excel二维表格。DataFrame对象由一组数据以及与数据相关的行索引和列索引组成,可以存储和处理整数、浮点数、字符串、Python对象等多种类型的数据。7.1.1创建数据对象1.创建Series对象Series()方法用于创建Series对象,其基本语法格式如下。其中,相关参数说明如下。(1)data:数据,可以是标量、可迭代对象(如列表)、字典等。(2)index:索引,默认以0开始的整数作为索引。省略所有参数时,该方法将创建一个空Series对象。示例代码单击此处编辑母版文本样式第二级第三级第四级第五级2.创建DataFrame对象DataFrame()方法用于创建DataFrame对象,其基本语法格式如下。其中,相关参数说明如下。(1)data:数据,可以是字典、二维数组、Series对象、DataFrame对象或其他可转换为DataFrame对象的数据。省略此参数,则创建一个空DataFrame对象。(2)index:行索引,可以是列表、数组、索引对象等。省略此参数,则创建一个默认的整数索引。(3)columns:列索引,可以是列表、数组、索引对象等。省略此参数,则创建一个默认的整数索引。(4)dtype:指定数据的类型,可以是NumPy库中的数据类型,如64、np.float64等。省略此参数,则根据数据自动推断数据类型。(5)copy:指定是否复制数据,默认值为False,表示不复制数据。如果设置为True,则复制输入的数据。示例代码7.1.2数据的基本运算Series对象和DataFrame对象支持各种数据运算,示例代码如下。7.1.3数据处理相关的属性和方法1.Series对象的常用属性和方法2.DataFrame对象的常用属性和方法7.1.4数据的索引和切片Series对象和DataFrame对象支持索引和切片,通过索引可访问和修改元素。1.访问和修改Series对象元素2.访问和修改DataFrame对象元素7.1.5数据的导入和导出1.导入数据pandas常用的数据导入方法如下。(1)read_csv():导入CSV文件。(2)read_table():导入分隔符分隔的文件,默认分隔符为制表符“\t”。(3)read_excel():导入Excel文件。(4)read_json():读取JSON文件。(5)read_sql():从SQL数据库读取数据。(6)read_html():从HTML文件中读取表格数据。这些方法的用法类似,2.导出数据to_excel()方法可以将数据导出到Excel文件,示例代码如下。导出的“output1.xlsx”工作簿数据如图7-1所示。DataFrame对象的列索引作为Excel表格的列名,行索引作为第1列数据(该表格第1列第1行数据为空)。可以将数据导出到多个工作表,示例代码如下。to_csv()方法可以将数据导出到CSV文件,示例代码如下。任务7.2成绩排序【任务目标】文件“data1.xlsx”中的工作表“Sheet3”保存了成绩数据(包括学号、姓名、政治、数学、英语等列),使用pandas导入数据,计算成绩总分,并按总分从高到低排序。【任务实施】……7.2数据处理操作本节介绍pandas的数据处理功能,包括数据的清洗、筛选、排序、排名、合并、连接、分组统计、透视表创建以及绘图等操作。7.2.1数据清洗数据清洗指对数据中的无效值、重复值等进行处理。1.处理无效值在导入数据时,pandas将n/a、NA、空值当作无效数据,用NaN表示。文件“data2.xlsx”中包含多个无效值,如图7-3所示。导入文件“data2.xlsx”中的数据,示例代码如下。除了默认处理的无效值,上述导入数据中的8t、-也属于不符合要求的无效值。可以在导入时,使用na_values参数指定需要额外处理的无效值,示例代码如下。可以使用isnull()方法判断数据中的元素是否属于无效值,示例代码如下。dropna()方法可以删除包含无效值的行,示例代码如下。fillna()方法可以用指定值替换无效值,示例代码如下。2.处理重复值可以使用duplicated()方法和drop_duplicates()方法处理重复数据。duplicated()方法用于检测是否存在重复数据,若存在重复数据,则返回True,否则返回Falsedrop_duplicates()方法用于删除重复数据。示例代码如下。7.2.2数据筛选DataFrame对象可以按行(列)索引筛选数据,也可以按条件筛选数据。1.按行(列)索引筛选数据loc属性可按标签索引返回数据,其基本语法格式如下。行(列)标签可以是单个值,也可以是用列表表示的多个值。省略列标签时,包含所有列。使用数字索引时,数字也作为标签。前面介绍过使用数字索引访问和修改元素的方法,下面介绍使用标签索引访问元素的方法示例代码2.按条件筛选数据可以使用表达式、query()方法、isin()方法等多种方式按条件筛选数据示例代码如下。7.2.3数据排序和排名1.数据排序sort_values()方法用于数据排序,其基本语法格式如下。其中,相关参数说明如下。(1)by:排序列名,可以是单个字符串或字符串列表。(2)ascending:默认值为True,表示按升序排序;设置为False,表示按降序排序。指定多个排序列名时,可在ascending参数中用True/False列表设置各个列的升降序排序。(3)inplace:默认值为False,表示不修改原DataFrame对象;设置为True,表示修改原DataFrame对象。2.数据排名rank()方法用于数据排名,其基本语法格式如下。其中,相关参数说明如下。(1)method:各列的排名方式,默认为average(相同数据排名取平均值),还可以是min(相同数据排名取最小值)、max(相同数据排名取最大值)、first(相同数据排名按出现的顺序取值)、dense(类似min)。(2)ascending:默认值为True,表示按升序排名;设置为False,表示按降序排名。7.2.4数据合并和连接1.按行(列)合并数据concat()方法用于按行(列)合并数据,其基本语法格式如下。其中:参数data1和data2是两个DataFrame对象;参数axis默认值为0,表示按行合并,值为1表示按列合并。concat()方法返回包含合并数据的新DataFrame对象2.按索引或列连接数据merge()方法用于按索引或列连接数据,其基本语法格式如下。其中:参数left为连接中的左侧DataFrame对象(左表),参数right为连接中的右侧DataFrame对象(右表),参数how为连接方式,参数on为连接使用的索引或者列名(值为None时,自动按相同列名进行连接)。连接方式分为以下几种。(1)left:类似SQL中的“左外连接”,包含左表中的全部数据,右表中无对应值时用NaN代替。(2)right:类似SQL中的“右外连接”,包含右表中的全部数据,左表中无对应值时用NaN代替。(3)inner:默认方式,类似SQL中的“内部连接”,仅包含左表和右表在on指定的索引或列上取值相等的记录。(4)outer:全连接,包含左表和右表的全部数据,无对应值时用NaN代替。7.2.5数据分组统计groupby()方法和聚合函数用于实现数据分组统计。groupby()方法的基本语法格式如下。其中,参数by是作为数据分组依据的列名。常用的聚合函数如下。(1)sum():求和。(2)count():计数。(3)mean():求平均值。(4)max():求最大值。(5)min():求最小值。7.2.6数据透视表创建pivot_table()方法用于创建数据透视表,其基本语法格式如下。其中,相关参数说明如下。(1)data:DataFrame对象。(2)values:单个的列名或者列名列表,指定执行统计的列。(3)index:单个的列名或者列名列表,指定行索引。(4)columns:单个的列名或者列名列表,指定列索引。(5)aggfunc:单个函数或者用字典格式指定的多个函数,指定统计类型,默认为mean(求平均值)。7.2.7数据绘图pandas绘图依赖于Matplotlib的pyplot模块,可以简单地绘制出常用的统计图形。DataFrame对象的plot()方法可以实现常用的绘图操作,其基本语法格式如下。其中,相关参数说明如下。(1)kind:图表类型,默认为line(折线图),还可以是bar(垂直柱状图)、barh(水平柱状图)、hist(直方图)、box(箱线图)、kde(kerneldensityestimation,核密度估计图)、area(面积图)、pie(饼图)、scatter(散点图)、hexbin(六边形箱图)等。(2)x:x轴数据列名或索引,默认值为None。(3)y:y轴数据列名或索引,可以是单个的列名或列名列表,默认值为None。(4)title:图表标题,默认值为None。(5)grid:是否显示网格,默认值为None。【综合实例】Excel文件数据合并文件夹“datas”中有若干个保存了“年级”“层次”“专业名称”“人数”“录取线”等数据的Excel文件,编写一个程序将所有文件合并到一个新文件中。THANKYOU单元8Python教你玩转Excel文件
任务8.1将数据存入Excel文件【任务目标】文件“data1.txt”中保存了“唐宋八大家”的相关信息(包括姓名、朝代、代表作),编写一个程序,使用xlwings库,将这些数据存入一个Excel文件。【任务实施】……8.2管理工作簿创建工作簿打开工作簿管理工作簿8.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第01讲 溶液的酸碱性(寒假预习讲义)教学设计
- 2026八年级上语文探究题答题技巧
- 2026七年级下语文文言文细节描写技巧
- 2026七年级下语文卖油翁第二课时精读
- 中国像素电路行业市场集中度、竞争格局及投融资动态分析报告(智研咨询)
- 亲子农村策划活动方案(3篇)
- 冻土开发施工方案(3篇)
- 商家线上活动策划方案(3篇)
- 天河国庆活动策划方案(3篇)
- 岩棉管道施工方案(3篇)
- 2026江苏省建筑安全员C证考试(专职安全员)题库及答案
- 路灯改造工程实施方案
- 2026年考研政治真题及答案
- 铁路安全红线培训课件
- 中医科日间病房制度规范
- 医院艾滋病知识培训课件
- 2025《补体相关性肾病诊断和治疗专家共识》要点解读课件
- 广播电视播音员主持人试题(各地真题)附答案详解
- 境外支付合同范本
- GB/T 46468.1-2025鞋类鞋内腔测量第1部分:鞋长
- 2026年常德科技职业技术学院单招职业技能考试必刷测试卷汇编
评论
0/150
提交评论