版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章Python编程计算与人工智能应用(新医科版)Python基础第1节Python的数据与表达式第2节Python的基本结构第3节文件和库的使用第4节学习目标知识1Python开发环境配置;Python基本语法与数据类型;IPO编写方法与Python程序的三种基本结构;Python文件读写。技能2能够独立完成Python开发环境的配置;熟练运用Python基本语法编写代码;灵活操作Python常见数据类型;运用IPO模式设计并实现简单程序;正确使用Python程序的三种基本结构编写代码;熟练进行Python文件读写操作及第三方库的使用。素质3计算思维:能将医学问题抽象为IPO模型并用程序结构表达;规范与严谨:养成缩进、注释、命名规范的编码习惯;在文件操作中注重资源释放与异常处理;自主学习:能通过错误提示和官方文档调试代码,主动探索第三方库解决实际问题;工程意识:理解从环境配置到数据持久化的完整流程,初步具备编写小型医学信息处理工具的能力。导入在临床工作中每天都会接触大量数据和重复性工作,比如护士每小时记录患者体温,需要快速统计连续3次正常体温以结束监测;药师盘点药品库存,需判断药品数量是否低于安全阈值;管理员整理患者信息,要将姓名、年龄、体温等不同类型的数据规范保存,方便查询和分析。这些看似繁琐的工作,都可以通过Python编程高效完成。本章我们将从Python开发环境入手,学习数据类型、程序结构、文件操作等核心知识,掌握能解决医学场景实际问题的编程技能,让Python成为我们工作中的高效工具。第1节Python基础Python概述(一)Python语言的发展1.Python语言诞生1989年圣诞节,在荷兰阿姆斯特丹,吉多·范罗苏姆(GuidoVanRossum)为了打发空闲时间,决定开发一个正在构思的新脚本语言。1991年,Python语言诞生,Guido以最喜欢的英剧MontyPython'sFlyingCircus中的“Python”命名。2.开源开放促进快速发展2000年10月,Python2.0正式发布,标志着Python语言完成自身的进化,开启了Python应用的新时代。2010年,Python2.7发布,成为最后一版。2020年1月1日停止Python2的更新。Python语言是开源项目的优秀代表,解释器代码全部开源开放,可以在Python语言主网站自由下载。3.Python3诞生2008年12月,Python3.0正式发布,解释器采用面向对象方式,在语法层面做出重大改进,无法向下兼容。如需在Python3.X中使用2.X的库,需要特殊软件支持。本章教材使用的是Python3.13版本。Python概述(二)Python语言的特点Python语言是面向对象、解释型脚本语言,有很多重要特点:语法简洁遵循简单主义思想,精确表达,接近自然语言,关键字少、结构简单、语法清晰。Python语言代码行数,相当于其他语言的1/10至1/5。生态丰富提供几百个内置类和函数库,同时还有超过50万个第三方库,覆盖了几乎所有计算机技术领域,具备良好的编程生态。模式多样提供三种编程模式:过程式、对象式和生态式,覆盖当今编程语言支持的所有模式。开源理念Python是FLOSS(自由/开源软件)之一,用户使用Python进行开发和发布自己编写的程序不需要支付任何费用。Python还有类库便捷、平台无关性、强制可读、支持中文等特点。进入官方主网站
1选择Downloads区,根据操作系统下载对应版本安装文件
2执行安装文件,注意勾选“Addpython.exetoPATH”
3完成安装
4(一)安装Python解释器Python的环境配置Python的环境配置图5-1IDLE窗口界面(二)IDLE入门级编程工具安装程序除解释器外,还提供一批与Python开发和运行相关的工具,最重要的是Python集成开发环境IDLE。启动IDLE,进行Python编程、运行Python程序。在Windows操作系统下,成功安装Python解释器后,在“开始”菜单中,按字母搜索“IDLE”,打开IDLE开发环境,如图5-1所示。其中,提示符“>>>”之上的信息是IDLE开发工具的版本信息,在提示符后,输入命令,即可开始操作。Python程序基本格式(一)基本语法元素1.编码默认情况下,Python3源码文件采用UTF-8编码,所有字符串都是Unicode字符串。可以通过命令为源码文件指定不同的编码。2.注释注释是代码中的辅助性文字,被解释器略去,不被计算机执行。Python语言有两种注释方式:(1)单行注释采用#开头;(2)多行注释以'''(3个单引号)或"""(3个双引号)开头和结尾。注释语句主要有3个作用:标明作者和版权信息、解释代码原理或用途、辅助程序调试。Python程序基本格式(一)基本语法元素例L5-1:程序运行结果:个性化健康管理方案#作者:shiye'''编写时间:2025年7月6日'''"""版本声明:Python3开源程序"""print("个性化健康管理方案")#输出字符Python程序基本格式(一)基本语法元素3.标识符Python语言允许采用大小写字母、数字、下划线(_)和汉字等字符及其组合作为标识符。首字母不能是数字,中间不能出现空格,长度没有限制。例如:MyExample,obj_name1,性别,都是合法的标识符。注意:标识符对大小写敏感,P和p是两个不同的标识符。Python程序基本格式(一)基本语法元素4.保留字保留字是编程语言内部定义并保留使用的标识符。每种程序设计语言都有一套保留字(reservedword),也称关键字(keyword),不能将它们用作任何标识符的名称。Python的标准库提供一个keyword模块,可以输出当前版本的关键字。Python3.13有35保留字,如表5-1所示:表5-1Python保留字列表保留字保留字保留字保留字保留字FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryieldPython程序基本格式(一)基本语法元素5.续行符Python的每行代码长度并没有限制,但单行代码太长不利于阅读,所以,采用反斜杠(\)作为续行符,将一行代码分成多行书写,增加代码可读性。例如:例L5-2:>>>str_1="患者:张平平"+\
"性别:男"相当于:str_1="患者:张平平"
+
"性别:男"注意:一是续行符后不能存在空格,二是续行符后必须直接换行。Python程序基本格式(一)基本语法元素6.同一行写多条语句Python允许在同一行中书写多条语句,语句之间用分号(;)分隔。例L5-3:>>>x='temperature';y='is';z=36.5;print(x,y,z)
temperatureis36.5Python程序基本格式(一)基本语法元素7.空行Python允许代码间出现空行。函数之间或类的方法之间用空行分隔,表示一段新代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行和代码缩进不同,空行不是语法的一部分,不影响程序运行。空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。注意:空行也是程序代码的一部分。Python程序基本格式(二)程序格式框架Python语言采用严格的“缩进”表明程序的格式框架。缩进指每一行代码前的空白区域,用来表示代码之间的包含和层次关系。没有缩进的代码顶格书写,不留空白。一般1个缩进是4个空格。缩进表明所属关系,约束程序结构,增强可读性。Python用相同的缩进表示同级别的语句块,减少缩进表明语句块退出。缩进是Python唯一约束程序结构的手段。一般来说,分支、循环、函数、类等语法形式能够通过缩进包含一批代码,表达对应的所属关系。在if、while、for、def、class等保留字开头,以冒号(:)结尾的语句行之后的若干行语句进行缩进,表示这些语句与前面的语句形成所属关系。Python程序基本格式(二)程序格式框架例L5-4:ifTrue:print("李明")print("体温正常")else:print("李明")print("体温异常")#缩进不一致,会导致运行错误图5-2语法错误提示框程序运行提示语法错误,如图5-2所示:(三)基本输入输出1.input()函数input()函数从控制台接收用户输入,无论用户输入什么数据,都返回一个字符串。input()函数可以包含一些提示性文字,辅助用户了解输入要求,但提示性文字是可选项,程序也可以不设置。使用格式如下:<变量>=input(<提示性文字>)注意:无论用户输入的是字符还是数字,input()函数统一按照字符串类型处理。Python程序基本格式(三)基本输入输出1.input()函数例L5-5:>>>a=input("请输入:")请输入:体温>>>a'体温'>>>a=input()36.3>>>a'36.3'Python程序基本格式(三)基本输入输出2.eval()函数eval()函数以表达式方式解析并执行字符串,返回执行结果。eval(<字符串>)函数不直接用于输入输出,但常与输入函数一起使用,辅助进行输入数据类型转换,使用格式如下:<变量>=eval(<字符串>)eval()函数的作用是解析字符串并执行。即将参数字符串外面的引号去掉,将剩下的部分当作表达式执行。Python程序基本格式(三)基本输入输出2.eval()函数例L5-6:>>>temp=100>>>eval("(temp-32)/1.8")#解析成表达式(x-32)/1.8,计算结果为37.7777777777777837.77777777777778>>>eval("hello") #解析成hello,变量未定义,报错Traceback(mostrecentcalllast):File"<pyshell#0>",line1,in<module>eval("hello")File"<string>",line1,in<module>__import__('idlelib.run').run.main(True)NameError:name'hello'isnotdefined.Python程序基本格式(三)基本输入输出3.print()函数print()函数用于输出运算结果。使用格式如下:print(<参数1>,<参数2>,...,<参数n>,sep="",end="\n")输出各参数的值,参数可以是字符串或变量,多个参数之间用英文“,”分隔。sep用来设定参数之间的间隔,默认值是空格。end用来设定结尾符号,默认值是换行符“\n”。Python程序基本格式(三)基本输入输出3.print()函数例L5-7:>>>print("张平平","体温",36.3)张平平体温36.3>>>print("张平平","体温",36.3,sep=",")张平平,体温,36.3Python程序基本格式(四)库引用3.print()函数库(library)也叫功能库或函数库,是将一组程序功能进行封装,形成特定命名空间。每个库有一个名字,如<a>,可以采用<a>.<b>()形式,调用库<a>中的函数功能<b>()。Python库是一个统称,包括模块(module)、类(class)和程序包(package)等多种形式,本书统称为“库”。Python程序调用库功能的过程叫“引用”。Python程序基本格式(四)库引用Python库引用采用保留字import,有以下三种方式。第一种:import<库名>程序可以调用库中所有函数,使用库中函数格式如下:<库名>.<函数名>(<函数参数>)这种方式,显示标明函数来源,在引用多个库时,代码可读性更好。Python程序基本格式(四)库引用Python库引用采用保留字import,有以下三种方式。第二种:from<库名>import<函数名,函数名,...,函数名>或:from<库名>import*程序调用库中指定的函数,其中*是通配符,表示库中所有函数。使用库中函数格式如下:<函数名>(<函数参数>)直接引用库中函数,代码更简洁。但当多个库中的函数名冲突时,易出错。Python程序基本格式(四)库引用Python库引用采用保留字import,有以下三种方式。第三种:import<库名>as<库别名>程序可以调用库中所有函数,同时自定义一个别名。使用库中函数格式如下:<库别名>.<函数名>(<函数参数>)Python程序基本格式(四)库引用例L5-8:引用turtle库,使用函数画直线,如图5-3所示。>>>importturtleast>>>t.setup(600,400,200,200)#在屏幕设置画布>>>t.penup() #提起画笔>>>t.fd(-250) #向左移动250>>>t.pendown() #画笔落下>>>t.pencolor("purple") #设画笔颜色>>>t.pensize(20) #设画笔大小>>>t.fd(500) #向右画直线长500图5-3turtle画直线Python程序基本格式Python程序的运行有两种:一种是交互式,另一种是文件式,也称为批量式,文件式是最常用的编程方式。Python程序运行方式(一)交互式运行交互式,是指Python解释器即时响应用户输入的每条代码,一问一答,给出相应的输出结果,一般用于调试少量代码。1.命令方式Windows操作系统环境,“开始”菜单中打开Python3.X文件夹,单击“Python3.X(64-bit)”,即可进入Python解释器,如图5-4所示。在提示符>>>后输入Python语句,运行后结果在下一行输出。输入exit()或者quit()可以退出Python运行环境。图5-4Python解释器窗口Python程序运行方式(一)交互式运行2.IDLE集成开发环境IDLE是Python软件包自带的一个轻量级的集成开发环境,可以支持交互式和文件式运行。Windows操作系统环境,“开始”菜单中打开Python3.X文件夹,单击“IDLE(Python3.X64-bit)”,即可进入IDLEShellPython3.X。IDLE启动后,直接进入交互式运行模式,在提示符>>>后输入Python语句,运行后结果在下一行输出。(二)文件式文件式,也称为批量式,是指用户将多行Python程序代码一次性写入文件中,然后启动Python解释器批量执行文件中的全部代码。文件式运行方式写程序时,可以用IDLE,也可以用其他文本编辑工具或专业编程工具,在程序运行前,程序文件只是一个文本文件。IDLE支持文件式运行方式。IDLE启动后,在菜单中选择“File->NewFile”选项,或使用快捷键Ctrl+N打开一个新的编辑窗口。这个编辑窗口是一个具备Python语法高亮辅助的编辑器,可以进行代码编辑。例如,输入“print("Helloworld!")”,在菜单中选择“File->Save”选项,选择文件夹,保存为hello.py文件。在菜单中选择“Run->RunModule(F5)”选项,运行程序,如图5-5所示。Python程序运行方式(二)文件式Python程序运行方式对于100到300行左右代码的编程项目,建议使用IDLE编辑器,更大规模代码可以使用更加专业的开发工具,如PyCharm、JupyterNotebook、Spyder或VisualStudioCode等,它们的功能各有侧重,可以根据开发工作的方向进行选择。图5-5IDLE运行程序第2节Python的数据与表达式变量与赋值(一)变量1.Python语言诞生为了更好地使用变量、函数等其他程序元素,需要给它们关联一个标识符,这个过程称为命名。Python语言中的变量不需要声明,每个变量在使用前都必须赋值,赋值后该变量才被创建。变量本身没有类型,所说的“类型”是被赋值后,内存中对象的类型。变量是保存和表示数据值的一种语法元素。变量可以通过赋值方式获得或修改数据值。变量与赋值(二)赋值变量赋值,采用等号(=)表示。使用未赋值的变量,会报错。例L5-9:>>>n#访问未赋值变量Traceback(mostrecentcalllast):File"<pyshell#2>",line1,in<module>n#访问未赋值变量NameError:name'n'isnotdefined变量与赋值(二)赋值1.单一赋值<变量>=<表达式>将等号(=)右侧的计算结果,赋值给左侧的变量例L5-10:>>>count=2 #整数变量>>>price=6.60 #浮点数变量>>>items="静脉采血" #字符串变量>>>print(count,price,items)26.6静脉采血变量与赋值(二)赋值2.同步赋值Python允许同时为多个变量赋值。基本格式如下:<变量1>,...,<变量N>=<表达式1>,...,<表达式N>同步赋值首先运算右侧N个表达式,将多个表达式结果同时赋值给左侧的N个变量。注意:同步赋值,变量和表达式一一对应。变量与赋值(二)赋值2.同步赋值例L5-11:例L5-11:>>>count,price,items=2,6.60,"静脉采血">>>print(count,price,items)26.6静脉采血>>>count_1=count_2=count_3=1>>>print(count_1,count_2,count_3)111例如,互换变量x和变量y的值,如果采用单一语句,需借助额外的变量t辅助,t=x,x=y,y=t;而采用同步赋值,一行语句即可:>>>x,y=y,x同步赋值可以使赋值过程变得更简洁,能够减少变量使用,简化语句表达。常用数据类型不可变数据Number(数字)String(字符串)Tuple(元组)可变数据List(列表)Set(集合)Dictionary(字典)常用数据类型(一)数字整数int与数学中整数的概念一致;4种进制表示,如表5-2所示;整数没有取值范围限制浮点数float表示带有小数的数据;两种表示方法:十进制和科学计数法;必须带有小数部分;数值范围和小数精度受不同计算系统限制,存在范围。复数complex表示数学中的复数;由实数部分和虚数部分组成,用a+bj,或者complex(a,b)表示;复数z可用z.real和z.imag分别获得它的实数和虚数部分。例L5-12True和FalsePython的保留字,表示“真假”含义;True和False构成Python的布尔类型其中True表示与1相等的值,False表示与0相等的值。例5-13None是Python保留字,表达无、没有、空等含义;None不对应任何数据,仅表示“无”。例L5-14常用数据类型(一)数字表5-2整数的4种进制表示进制引导符号说明十进制无默认情况,例如:1010、-304二进制0b或0B由字符0和1组成,例如:0b101,-0B101八进制0o或0O由字符0至7组成,例如:0o711,-0O711十六进制0x或0X由字符0至9、a至f、A至F组成,例如:0xABC,-0XABC常用数据类型(一)数字例L5-12:>>>(1.23e-4+5.67e+8j).real0.000123>>>(1.23e-4+5.67e+8j).imag567000000.0常用数据类型(一)数字例L5-13:>>>1==TrueTrue>>>0==FalseTrue>>>1.0==TrueTrue>>>1==TrueTrue>>>0==FalseTrue>>>1.0==TrueTrue常用数据类型(一)数字例L5-13:>>>None==TrueFalse>>>None==FalseFalse>>>a=print("HelloWorld!")HelloWorld!>>>a==NoneTrue常用数据类型None(二)字符串字符串(String)是一组单一字符的有序组合,具有不可变特性,是基本数据类型。1.字符串定义字符串由一对单引号(')、双引号(")或三引号(''')表示。例如:"GGTGCT" 'A型血’ ""(空字符串) ''(空格字符串)单引号和双引号都可以表示单行字符串,作用相同,如果字符串中有引号,外面要用另一种引号界定。三引号可以表示单行字符串或多行字符串。常用数据类型(二)字符串1.字符串定义例L5-15:>>>'单引号:可以包含"''单引号:可以包含"'>>>"双引号:可以包含'""双引号:可以包含'">>>'''三引号:可以包含'或",也可以换行''''三引号:可以包含\'或",\n也可以换行'常用数据类型None(二)字符串2.转义符(\)斜杠符(\)是一种特殊的字符,被称为转义符。转义符与后面相邻的一个字符共同组成了新的含义,形成转义控制字符。部分转义字符如表5-3所示。表5-3转义字符表转义字符说明\(行尾符)续行符\\反斜杠符号\'单引号\"双引号\n换行\t横向制表符常用数据类型None(二)字符串3.字符串序号体系字符串采用2种序号体系:正向递增序号和反向递减序号。两种序号体系可以混合使用。如果字符串长度为L最左侧字符序号为0从左向右依次递增最右侧字符序号为L-1正向递增如果字符串长度为L最右侧字符序号为-1从右向左依次递减最左侧字符序号为-L反向递减常用数据类型None(二)字符串4.字符串索引通过序号访问字符串所包含字符的过程,称为索引,采用方括号和序号的形式索引访问字符。例L5-16:>>>str_1="A型血等位基因">>>str_1[0]'A'>>>print(str_1[0],str_1[5],str_1[-1])A基因常用数据类型None(二)字符串5.字符串切片通过序获取字符串从start到end(不包含end)步长为step的字符子串号组合访问字符串某个区间的过程,称为切片。如表5-4切片方式:表5-4切片方式切片格式说明str[start:end]获取字符串从start到end(不包含end)的字符子串str[start:end:step]获取字符串从start到end(不包含end)步长为step的字符子串其中:start和end为索引序号,可以为空;start为空表示字符串开始,end为空表示字符串结尾。常用数据类型None(二)字符串5.字符串切片例L5-17:>>>str_2="个性化健康管理方案">>>str_2[3:-2]'健康管理'>>>str_2[:]'个性化健康管理方案'>>>str_2[1:-1:2]'性健管方'>>>str_2[::-1]'案方理管康健化性个'常用数据类型None(二)字符串6.字符串格式化Python字符串格式化,是指字符串的格式化输出。第一种,将一个值插入到一个有字符串格式符%s的字符串中。例如:>>>print("患者:%s,年龄:%d"%('张平平',20))患者:张平平,年龄:20常用数据类型None(二)字符串Python字符串格式化的符号,如表5-5所示。表5-5字符串格式化符号表符号描述符号描述%c格式化字符及其ASCII码%f格式化浮点数字,可指定小数点后精度%s格式化字符串%e用科学计数法格式化浮点数%d格式化整数%E用科学计数法格式化浮点数(大写)%u格式化无符号整数%g%f和%e的简写%o格式化无符号八进制数%G%f和%E的简写%x格式化无符号十六进制数%p用十六进制数格式化变量的地址%X格式化无符号十六进制数(大写)
常用数据类型None(二)字符串第二种,使用f-string进行字符串格式化。前缀f或F,通过{}插入表达式。例L5-18:>>>name='张平平'>>>age=20>>>print(f"患者:{name},年龄:{age}")患者:张平平,年龄:20>>>a=5000>>>b=3000>>>print(f"患者缴费:{a}元+{b}元,合计:{a+b}元")患者缴费:5000元+3000元,合计:8000元常用数据类型None(二)字符串第三种,使用format()方法进行字符串格式化,使用格式如下:<模板字符串>.format(<逗号分隔的参数>)<模板字符串>由字符串及一系列“槽”组成,表达格式化效果,将format()方法中用逗号分隔的参数按照序号关系替换到“槽”中,形成输出结果。“槽”用花括号({})表示,如果花括号中没有序号,则按照出现顺序替换。常用数据类型None(二)字符串例L5-19:>>>"患者:{{{1}{2}}}体温:{0}。".format(36.3,"张平平","男")'患者:{张平平
男}体温:36.3。<模板字符串>中“槽”除了包括参数序号外,还可以包含格式控制信息。槽的内部格式如下:{<参数序号>:<格式控制标记>}其中,格式控制标记用来控制参数显示的格式。常用数据类型None(二)字符串格式说明如表5-6所示。表5-6格式控制标记说明:<填充><对齐><宽度><,><精度><类型>引导序号用于填充的单个字符<左对齐>右对齐^居中对齐槽的设置输出宽度数字的千位分隔符,适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,c,d,o,x,X浮点数类型e,E,f,%例L5-20:>>>"{0:*^20.3f}".format(37.77777777777778)'*******37.78********'常用数据类型None基本数据类型数字类型和字符串类型,只表示一个数据的单一数据的类型组合数据类型一组数据的表达,包括序列类、集合类、映射类常用数据类型None(三)元组元组是0个或多个元素组成的有序序列,没有长度限制,具有不可变特性,是组合数据类型。1.序列类型Python语言的许多数据类型都属于序列类。字符串(str)、元组(tuple)、列表(list)是其中比较重要的序列。字符串是单一字符的有序组合,是基本数据类型;元组和列表是由0个或多个不同类型数据的有序组合,是组合数据类型。元组创建后是固定的,具有不可变特性;列表是可变序列组合,使用灵活。序列类的数据类型都采用相同的序号体系:正向递增序号和反向递减序号。常用数据类型None(三)元组序列支持一批通用操作,支持成员关系操作符(in)、长度计算函数(len())、切片([]),还可以采用标准的比较操作符(<、<=、>、>=、==、!=)进行比较,常用操作如表5-7所示。表5-7序列的通用操作操作符说明xins如果x是s中的元素,返回True;否则返回Falsexnotins如果x不是s中的元素,返回True;否则返回Falses+t连接s和ts*n或n*s将序列s复制n次s[i]索引,返回序列序号i对应的元素s[i:j]切片,返回序列序号i到j(不含j)对应元素的子序列常用数据类型None(三)元组序列支持一批通用操作,支持成员关系操作符(in)、长度计算函数(len())、切片([]),还可以采用标准的比较操作符(<、<=、>、>=、==、!=)进行比较,常用操作如表5-7所示。表5-7序列的通用操作操作符说明s[i:j:k]步长切片,返回序列序号i到j(不含j)以k为步长的子序列len(s)序列s的元素个数min(s)序列s中的最小元素max(s)序列s中的最大元素s.index(x[,i[,j]])序列s中从序号i开始到j中第一次出现元素x的位置序号s.count(x)序列s中出现x的总次数常用数据类型None(三)元组2.元组定义元组由圆括号(())和逗号(,)表示,圆括号可以省略。元组可以采用赋值语句创建,也可以利用函数tuple(x)创建。空元组圆括号内没有元素,表示为()。单元素元组,在元素后加逗号,表示为(50,)。常用数据类型None(三)元组例L5-21:>>>tup_1=("A型","B型","AB型","O型")>>>tup_2=(1,2,3,4,5,6,7)>>>tup_3="高血压","高血脂","高血糖">>>tup_4=(("A型","B型","AB型","O型"),("Rh阳","Rh阴"))>>>tup_5=tuple([3.14,2.72])>>>tup_5(3.14,2.72)常用数据类型None(三)元组3.元组索引和切片元组是序列数据类型,可以通过序号索引元组中的元素,也可以进行切片。例L5-22:>>>tup_1[2]'AB型'>>>tup_2[-3]5>>>tup_3[1:]('高血脂','高血糖')常用数据类型None(三)元组4.元组不可变特性元组的不可变特性,指元组所指向的内存中的内容不可变。元组中的元素不允许修改,但可以对元组进行连接操作,生成新元组。元组中的元素也不允许删除,但可以删除整个元组。常用数据类型None(三)元组例L5-23:>>>tup=('G','T','O','C')>>>tup[0]='g'Traceback(mostrecentcalllast):
File"<pyshell#19>",line1,in<module>
tup[0]='g'TypeError:'tuple'objectdoesnotsupportitemassignment>>>deltup>>>tupTraceback(mostrecentcalllast):
File"<pyshell#21>",line1,in<module>
tupNameError:name'tup'isnotdefined常用数据类型None(四)列表列表是0个或多个元素组成的有序序列,没有长度限制,属于可变序列,是组合数据类型。1.列表定义列表由方括号([])和逗号(,)表示。列表可以采用[]直接创建,也可以利用函数list(x)创建。例L5-24:>>>ls_1=['G','T','O','C']>>>ls_2=["血型",4,("A型","B型","AB型","O型")]常用数据类型None(四)列表列表不能简单地通过赋值语句生成,即将一个列表变量赋值给另一个列表变量不会创建新的列表对象。例L5-25:>>>ls_1=['G','T','O','C']#创建列表对象ls_1>>>ls_3=ls_1 #ls_3是对ls_1数据引用,ls_3并不包含真实数据>>>ls_3[0]='U'>>>ls_3['U','T','O','C']常用数据类型None(四)列表2.列表索引和切片列表是序列数据类型,可以通过序号索引列表中的元素,也可以进行切片。例L5-26::>>>ls_1[2]'O'>>>ls_2[1:][4,('A型','B型','AB型','O型')]常用数据类型None(四)列表3.列表可变特性列表中元素可以修改,也可以使用append()添加;列表中元素可以删除,列表也可以删除。例L5-27:>>>ls_2=["血型",4,("A型","B型","AB型","O型")]>>>ls_2[1]=6>>>ls_2.append(("Rh阳","Rh阴"))>>>ls_2['血型',6,('A型','B型','AB型','O型'),('Rh阳','Rh阴')]>>>dells_2[3]常用数据类型None(四)列表例L5-27:>>>ls_2['血型',6,('A型','B型','AB型','O型')]>>>dells_2>>>ls_2Traceback(mostrecentcalllast):
File"<pyshell#29>",line1,in<module>
ls_2NameError:name'ls_2'isnotdefined常用数据类型None(四)列表4.列表嵌套列表的元素可以是元组、列表等组合数据类型,形成列表的嵌套,嵌套列表可以分层次索引。例L5-28:>>>ls_2=["血型",6,["A型","B型","AB型","O型"],('Rh阳','Rh阴')]>>>ls_2[2]['A型','B型','AB型','O型']>>>ls_2[3]('Rh阳','Rh阴')>>>ls_2[2][2]'AB型'>>>ls_2[3][1]'Rh阴'常用数据类型None(五)集合Python集合和数学中集合的概念一致,是0个或多元素组成的无序组合。1.集合类型集合是元素的无序组合,无法区分相同元素,因此要求集合内元素不能重复。为避免元素改变后与其他元素相同,集合要求元素类型只能是不可变类型,如整数、浮点数、字符串、元组等。列表、字典和集合是可变数据类型,不能作为集合的元素。2.集合定义集合用花括号({})和逗号(,)表示,可以采用{}或函数set()创建,其元素可以增加或删除。创建一个空集合必须用set()。常用数据类型None(五)集合例L5-29:>>>S={"血型",4,("A型","B型","AB型","O型")}>>>S{'血型',4,('A型','B型','AB型','O型')}>>>T=set()>>>Tset()常用数据类型None(五)集合3.集合无序不重复特性集合元素无序,输出顺序和定义顺序可能不一致。集合元素独一无二,重复元素会被过滤掉。例L5-30:>>>T={"A型","B型","AB型","O型","A型","AB型","O型"}>>>T{'O型','A型','B型','AB型'}常用数据类型None(五)集合4.集合操作集合之间有4种基本操作:交集(&)、并集(|)、差集(-)、补集(^),规则同数学。集合还可以对元素进行增删、复制、清空、归属等操作。常用数据类型None(六)字典字典表示映射关系,是0个或多个键值对的集合,是可变容器模型,可以存储任何类型对象。1.映射类型映射是一种二元关系,表示通过键查找值的过程,其中键用于索引,值是对应的数据。2.字典定义字典由花括号({})、冒号(:)和逗号(,)表示。可以采用{}直接创建,也可以由函数dict()创建。常用数据类型None(六)字典字典类型的格式如下:{<键1>:<值1>,<键2>:<值2>,...<键N>:<值N>}其中,键和值之间通过冒号连接,键值对之间通过逗号分隔。例L5-31:>>>dict_1={"name":"张平平","sex":"男","age":48,"temp":36.3}>>>dict_2={1:36.5,2:36.8,3:37.4,4:37.9}常用数据类型None(六)字典3.字典索引字典是键值对的集合,各个元素之间没有顺序之分且不能重复,所以不能用序号来索引,字典的索引按键进行。键必须是唯一的,所以键必须是不可变的,如数字、字符串或元组;但值没有要求,值可以是任何数据类型。索引字典中没有的键,会报错。常用数据类型None(六)字典例L5-32:>>>dict_1["name"]'张平平'>>>dict_1["temp"]36.3>>>dict_1["weight"]Traceback(mostrecentcalllast):
File"<pyshell#89>",line1,in<module>
dict_1["weight"]KeyError:'weight'常用数据类型None(六)字典4.字典可变容器字典元素可以增加、修改和删除。字典操作一般采用<a>.<b>()格式,<a>是字典数据或变量,<b>()为操作函数。其中keys()返回键,values()返回值,items()以元组形式返回键值对。例L5-33:>>>dict_1['age']=58>>>dict_1['weight']=75>>>dict_1{'name':'张平平','sex':'男','age':58,'temp':36.3,'weight':75}>>>deldict_1["temp"]>>>dict_1{'name':'张平平','sex':'男','age':58,'weight':75}常用数据类型None(六)字典例L5-33:>>>dict_1.clear()>>>dict_1{}>>>deldict_1>>>dict_1Traceback(mostrecentcalllast):
File"<pyshell#97>",line1,in<module>
dict_1NameError:name'dict_1'isnotdefined.运算符及表达式None运算符是一种特殊的符号,用来表示对1个或多个操作数进行特定运算处理。Python语言支持数字运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符等。1.数字运算符Python中的算术运算和数学的计算相似,主要运算符如表5-8所示。表5-8算术运算符运算符说明实例+加,x+y21+10,结果:31-减,x-y21-10,结果:11*乘,x*y21*10,结果:210/除,x/y21/10,结果:2.1%模,x%y21%10,结果:1**幂,x**y21**10,结果:16679880978201//整除,x//y21//10,结果:2运算符及表达式None运算符的运算结果可能与操作数的类型不同。整数、浮点数和复数之间存在一种扩展的关系:整数->浮点数->复数例L5-34:>>>50–5*620>>>(50–5*6)/45.0>>>17/3#整数除法返回浮点数5.666666666666667>>>17//3#整数除法返回向下取整后的结果5>>>17%3#%操作符返回除法的余数2运算符及表达式None运算符的运算结果可能与操作数的类型不同。整数、浮点数和复数之间存在一种扩展的关系:整数->浮点数->复数例L5-34:>>>17.0//35.0>>>7//2.03.0>>>5**2#5的平方25>>>3*3.75/1.57.5运算符及表达式None2.比较(关系)运算符Python比较运算的结果为True(真)或False(假)。比较运算符如表5-9所示。表5-9比较(关系)运算符运算符说明实例==等于,x==y21==10,结果:False或"a"=="b",结果:False!=不等于,x!=y21!=10,结果:True或"a"!="b",结果:True>
大于,x>y21>10,结果:True或"a">"b",结果:False
>=大于等于,x>=y21>=10,结果:True或"a">="b",结果:False<小于,x<y21<10,结果:False或"a"<"b",结果:True<=小于等于,x<=y21<=10,结果:False或"a"<="b",结果:True运算符及表达式None3.赋值运算符Python赋值运算一般使用=较多,但是Python中还有更多的赋值运算操作,赋值运算符如表5-10所示。表5-10赋值运算符运算符说明实例=赋值,c=a+bc=a+b+=加赋值,c=a+b相当于c=c+a-=减赋值,c-=a
相当于c=c-a*=乘赋值,c*=a相当于c=c*a/=除赋值,c/=a相当于c=c/a%=取模赋值,c%=a相当于c=c%a**=幂赋值,c**=a相当于c=c**a//=整除赋值,c//=a相当于c=c//a:=海象运算符,可在表达式内部为变量赋值。Python3.8版本新增运算符。赋值表达式可以避免调用len()两次:if(n:=len(a))>10:print(f"Lististoolong({n}elements,expected<=10)")运算符及表达式None4.逻辑运算符Python语言支持逻辑运算,逻辑运算符如表5-11所示。表5-11逻辑运算符运算符说明实例and与,xandy,x为False,结果为False;x为True,计算yTrueandFalse为Falseor或,xory,x为True,结果为True;x为False,计算yTrueorFalse为Truenot非,notx,x为True,结果为False;x为False,结果为TruenotFalse为True运算符及表达式None4.逻辑运算符例L5-35:>>>TrueandTrue;TrueorTrueTrueTrue>>>ifTrueandTrue:
print("True")True>>>ifTrueorTrue:
print("True")True运算符及表达式None4.逻辑运算符例L5-35:>>>FalseandTrue;FalseorTrueFalseTrue>>>ifFalseandTrue:
print("True")>>>ifFalseorTrue:
print("True")True运算符及表达式None5.位运算符按位运算将数字转换为二进制后进行运算。Python的按位运算符及运算法则如表5-12所示。表5-12位运算符运算符描述实例&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0A=0b00111100=60B=0b00001101=13A&b=00001100=12|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。A|b=00111101=61^按位异或运算符:当两对应的二进位相异时,结果为1A^b=00110001=49运算符及表达式None5.位运算符按位运算将数字转换为二进制后进行运算。Python的按位运算符及运算法则如表5-12所示。表5-12位运算符运算符描述实例~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x类似于-x-1~a=11000011=-61<<
左移动运算,运算数的各二进位全部左移若干位,由右侧的数指定移动的位数,高位丢弃,低位补0a<<2=11110000=240>>
右移动运算,运算数的各二进位全部右移若干位,由右侧的数指定移动的位数,低位丢弃,高位补0a>>2=00001111=15运算符及表达式None6.成员运算符Python成员运算符有两个,测试是否包含了一系列的成员,包括字符串、列表或元组。in:如果在指定的序列中找到值则返回True,否则返回False。x在y序列中,xiny返回True。notin:如果在指定的序列中没有找到值返回True,否则返回False。x不在y序列中,xnotiny返回True。运算符及表达式None6.成员运算符例L5-36:>>>if10in[1,2,3,4,5]:
print("True")>>>if10notin[1,2,3,4,5]:
print("True")True运算符及表达式None7.身份运算符身份运算符用于比较两个对象的存储单元:is:判断两个标识符是不是引用一个对象。xisy,如果引用的是同一个对象则返回True,否则返回False。isnot:判断两个标识符是不是引用自不同对象。xisnoty,如果引用的不是同一个对象则返回结果True,否则返回False。运算符及表达式None7.身份运算符例L5-37:>>>a=[1,2,3]>>>b=a>>>bisaTrue>>>b==aTrue>>>b=a[:]>>>bisaFalse>>>b==aTrue运算符及表达式None8.运算优先级表达式中会同时出现多种运算符,这些运算符要按照一定优先级顺序运行。所有运算符运算优先级顺序是从高到低,如表5-13所示。表5-13运算符优先级运算符描述**幂(最高级)~+-一元运算*/%//乘、除、模、整除+-加、减>><<右移、左移&按位与运算符及表达式None8.运算优先级表达式中会同时出现多种运算符,这些运算符要按照一定优先级顺序运行。所有运算符运算优先级顺序是从高到低,如表5-13所示。表5-13运算符优先级运算符描述^|按位异或、按位或<<=>>=小于、小于等于、大于、大于等于==!=等于、不等于=%=/=//=-=+=*=**=赋值运算isisnot身份运算innotin成员运算notandor逻辑运算运算符及表达式None8.运算优先级表达式中会同时出现多种运算符,这些运算符要按照一定优先级顺序运行。所有运算符运算优先级顺序是从高到低,如表5-13所示。表5-13运算符优先级运算符描述^|按位异或、按位或<=<>>=小于、小于等于、大于、大于等于==!=等于、不等于=%=/=//=-=+=*=**=赋值运算isisnot身份运算innotin成员运算notandor逻辑运算函数None函数是组织好的,可重复使用的,具有特定功能的代码段。使用函数有两个目的:降低编程难度和重用程序代码。Python解释器自带一些函数,称为标准函数。而由程序定义的函数,称为自定义函数。标准函数一般实现一个特定的功能,自定义函数在大型软件开发中应用较多。函数None(一)常用函数常用函数主要分为以下几类。1.数字运算函数Python提供与数字运算有关的函数如表5-14所示。表5-14常用数字运算函数函数说明abs(x)绝对值函数,取x的绝对值divmod(x,y)商余函数,表示(x//y,x%y),输出为二元组形式,包含括号pow(x,y[,z])模幂函数,表示(x**y)%zround(x[,d])计数保留函数,对x取舍,保留d位小数max(x1,x2,...,xn)最大值函数,x1,x2,...,xn的最大值,n没有限定min(x1,x2,...,xn)最小值函数,x1,x2,...,xn的最小值,n没有限定函数None(一)常用函数例L5-38:>>>abs(-3+4j)5.0>>>divmod(20,8)(2,4)>>>a,b=divmod(20,8)>>>a2>>>b4函数None(一)常用函数例L5-38:>>>pow(3,pow(3,999),10000) #幂运算与模运算同时进行,速度快4587>>>round(3.5)#计数保留,国际标准“奇进偶不进”4>>>round(4.5)4>>>max(9,1,3,5,7,1,8)9>>>min(9,1,3,5,7,1,8)1函数None(一)常用函数2.随机函数很多领域经常用到随机数,random标准库采用梅森旋转算法(Mersennetwister)生成伪随机数序列,random库提供9个常用的随机数函数,如表5-15所示。表5-15random库的随机数函数函数说明seed(a=None)初始化随机数种子,默认值为当前系统时间random()生成一个[0.0,1.0)之间的随机小数randint(a,b)生成一个[a,b]之间的随机整数getrandbits(k)生成一个k比特长度的随机整数randrange(start,stop[,step])生成一个[start,stop)之间以step为步长的随机整数函数None(一)常用函数2.随机函数很多领域经常用到随机数,random标准库采用梅森旋转算法(Mersennetwister)生成伪随机数序列,random库提供9个常用的随机数函数,如表5-15所示。表5-15random库的随机数函数函数说明uniform(a,b)生成一个[a,b]之间的随机小数choice(seq)从序列的元素中随机返回一个元素shuffle(seq)将序列中的元素随机排列sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回函数None(一)常用函数例L5-39:>>>fromrandomimport*>>>seed(250724)>>>random()0.8943938675496486>>>random()0.4899232201421784>>>randint(1,10)9>>>uniform(1,10)7.2394308760153345>>>getrandbits(10)38>>>randrange(1,100,7)57函数None(一)常用函数例L5-39:>>>randrange(1,100,7)71>>>choice([1,2,3,4,5,6,7])6>>>choice("A型血等位基因GGTGCT")'等'>>>ls=[1,2,3,4,5,6,7]>>>shuffle(ls)>>>ls[7,5,6,1,2,3,4]>>>sample([1,2,3,4,5,6,7],4)[5,4,3,7]>>>sample("A型血等位基因GGTGCT",3)['T','G','型']函数None(一)常用函数3.字符串函数Python提供多个与字符串操作相关的函数,如表5-16所示。表5-16字符串操作函数和操作方法函数说明len(x)返回字符串x的长度也可返回组合数据类型的元素个数str(x)返回任意类型x所对应的字符串chr(x)返回Unicode编码整数x对应的单字符ord(x)返回单字符x对应的Unicode编码整数hex(x)返回整数x对应十六进制数的小写形式字符串函数None(一)常用函数3.字符串函数Python提供多个与字符串操作相关的函数,如表5-16所示。表5-16字符串操作函数和操作方法函数说明oct(x)返回整数x对应八进制数的小写形式字符串str.lower()返回字符串的对应小字字母字符串str.upper()返回字符串的对应大字字母字符串str.isnumeric()测试字符串是否只包含数字字符,是返回True,否则返回False函数None(一)常用函数3.字符串函数Python提供多个与字符串操作相关的函数,如表5-16所示。表5-16字符串操作函数和操作方法函数说明oct(x)返回整数x对应八进制数的小写形式字符串str.lower()返回字符串的对应小字字母字符串str.upper()返回字符串的对应大字字母字符串str.isnumeric()测试字符串是否只包含数字字符,是返回True,否则返回False函数None(一)常用函数Python3以Unicode字符为计数基础,字符串中英文字符和中文字符都是1个长度单位。例L5-40:>>>len("A型血等位基因GGTGCT")13>>>str(3.1415926)'3.1415926'>>>"1+1=2"+chr(10004)'1+1=2✔'>>>"1+1=10"+chr(10005)'1+1=10✕'函数None(一)常用函数Python3以Unicode字符为计数基础,字符串中英文字符和中文字符都是1个长度单位。例L5-40:>>>"✕的Unicode值是:"+str(ord("✕"))'✕的Unicode值是:10005'>>>"Python代码".lower()'python代码'>>>"Python代码".upper()'PYTHON代码'>>>"Python代码".isnumeric()False函数None(一)常用函数4.类型转换函数Python提供多个用于不同数据类型转换的函数,如表5-17所示。表5-17类型转换函数函数说明int(x)整数转换函数,将浮点数或字符串x转换成整数float(x)浮点数转换函数,将整数或字符串x转换成浮点数complex(re[,im])复数转换函数tuple(x)列表转元组函数,将列表转换成元组list(x)元组转列表函数,将元组转换成列表函数None(一)常用函数例L5-41:>>>int(3.1415926)3>>>int("36")36>>>float("36.3")36.3>>>float("3.14e-2")0.0314>>>complex(3)(3+0j)>>>complex(3,4)(3+4j)>>>complex("3+4j")(3+4j)函数None(一)常用函数例L5-42:>>>ls_1=['G','T','O','C']>>>tuple(ls_1)('G','T','O','C')>>>tup_1=("A型","B型","AB型","O型")>>>list(tup_1)['A型','B型','AB型','O型']函数None(一)常用函数5.类型测试函数Python提供了函数type(x),用于测试对象的类型。例L5-43:>>>type(3)<class'int'>>>>type(3.)<class'float'>>>>type(3+0j)<class'complex'>>>>type("3")<class'str'>函数None(一)常用函数5.类型测试函数Python提供了函数type(x),用于测试对象的类型。例L5-43:>>>type((3,))<class'tuple'>>>>type([3])<class'list'>>>>type({3})<class'set'>>>>type({3:4})<class'dict'>函数None其中,def保留字定义函数;函数名是有效标识符,遵循命名规则;参数列表是调用函数时输入的值,可以是0个或多个,参数之间用逗号分隔,是形式参数,简称“形参”;圆括号不能省略;行末要有冒号。(二)自定义函数用户可以根据需要自己定义函数。1.定义函数函数定义的基本语法格式如下;def<函数名>(<参数列表>):<函数体>return<返回值列表>函数None(二)自定义函数函数体缩进书写,所属于def语句。函数体是函数执行时要运行的代码,由一行或多行语句组成。return语句用于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4.1《维护秩序靠规则》教学设计 2026-2027学年度道德与法治八年级上册 统编版
- 5G万物互联技术考试题(含详细答案解析)
- 网络安全教育课件图文完美版
- 合规转利润:降本增效全指南(2026)《GBT 39322-2020电子商务交易平台追溯数据接口技术要求》
- 厂区安防系统整体布设方案
- 2026年浙江省人教版初中物理八年级上册第2章力学基础习题
- 2026年浙江省人教版初中数学九年级下册第5章概率统计综合测试卷
- 2026年浙江省高中数学选修2-6第6章数列习题
- 广东揭阳部分高中2026-2027学年高三上学期开学摸底调研数学试题(含答案)
- 外科护理小讲课
- 华理工质量管理与可靠性课件第8章 可靠性工程基础
- 基础医学专业就业方向与行业需求分析
- 柴油叉车安全操作规程
- 新疆准能重工有限公司准东装备制造项目一期水土保持方案报告表
- 2026年高考数学新高考I卷数学真题
- 2026秋人教版九年级英语上册单词默写
- 施工现场八大责任制度
- 食品保质期试验制度规范
- 化工新工艺新材料课件
- 天宏公司的绩效管理体系案例
- GB 14544-2025乙炔法生产氯乙烯安全技术规范
评论
0/150
提交评论