资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第,1,章,Python,概述,1,Python,简介,2,Python,开发环境的,3,编写一个简单的,Python,程序,知识点及难点,知识导图,1.1 Python,简介,01,Python,的创始人为吉多,范罗苏姆(,Guido van Rossum,)。,1989,年圣诞节期间,,Guido,开始编写,Python,编译器。,Python,这个名字来自,Guido,喜爱的电视连续剧,蒙提,派森的飞行马戏团,。,Python,的发展历程合类型概述,1.1 Python,简介,01,Python,版本的发展历程如下:,1994,年,1,月发布,Python 1.0,;,2000,年,10,月发布,Python 2.0,;,2004,年,11,月发布,Python 2.4,;,2006,年,9,月发布,Python 2.5,;,2008,年,12,月发布,Python 3.0,;,2015,年,12,月发布,Python 3.5,;,2016,年,12,月发布,Python 3.6,;,2018,年,6,月发布,Python 3.7,。,Python,的发展历程合类型概述,1.1 Python,简介,02,简单易学,Python,的特性,可扩展性和可嵌入性,解释型语言,面向对象语言,具有丰富的编程库,免费、开源,1.1 Python,简介,03,Web,开发,Python,的应用场合,人工智能,网络软件开发,数据分析与处理,1.2 Python,开发环境的构建,01,Python,的学习过程需要用到,IDE,(,Integrated Development Environment,,集成开发环境)或者代码编辑器,或者集成的开发编辑器。,Python,开发工具可以帮助开发者加快使用,Python,开发的速度,以提高效率。书中表,1.1,所示为,Python,的,IDE,的介绍。,Python,的,IDE,1.2 Python,开发环境的构建,02,下载,Python,安装包,在,Windows,操作系统中安装,Python,安装,测试,编写程序,配置,Python,环境变量,1.2 Python,开发环境的构建,03,检测,Python,版本,在,Linux,操作系统中安装,Python,安装,Python 3,版本,1.2 Python,开发环境的构建,04,检测,Python,版本,在,Mac OS,中安装,Python,安装,Python 3.7,1.2 Python,开发环境的构建,05,安装,pip,Python,第三方库的安装,安装,wheel,(用离线安装下载下来的,.whl,文件),安装第三方库,1.3,编写一个简单的,Python,程序,本节将介绍,Python,程序的执行原理,并通过,Python,程序文件执行方式和,Python,程序交互执行方式两种方式来实现第一个,Python,程序:,Hello World,。,01,Python,是一种脚本语言,编辑完成的源程序称为源代码,可以直接运行。,Python,程序的运行过程分成两个步骤:解释器将源代码翻译成字节码,然后由虚拟机解释执行,如图所示。,Python,程序执行原理,1.3,编写一个简单的,Python,程序,02,打开,IDLE,程序,Python,程序文件执行方式,在,IDLE,打开的情况下,按,Ctrl+N,组合键新打开一个窗口,在新窗口中进行编程,从,“,Run,”,菜单中选择,“,Run Module,”,菜单项,执行代码文件,1.3,编写一个简单的,Python,程序,03,打开,cmd.exe,或,PowerShell,,输入,python,指令,Python,程序交互执行方式,在,Python,交互式环境中输入,print(Hello World),,按回车键,在,Python,交互式环境中输入,exit(),指令即可退出,Python,交互式环境,本章小结,本章介绍了,Python,的发展历程、特性和应用场合,具体讲解了,Python,在,Windows,、,Linux,和,Mac OS,这,3,种操作系统中的安装方式,再通过,Python,交互方式和,Python,文件方式来实现第一个,Python,程序:,Hello World,。,第,2,章,Python,语法概述,1,程序的格式框架,2,标识符与关键字,4,语句概述,5,基本输入和输出函数,3,数据类型,知识点及难点,知识导图,2.1,程序的格式框架,01,Python,的代码编写一般是顶行编写并且不留空白的。,缩进是指每行语句开始的空白区域,,Python,用它来表示程序的包含和层次关系。,分层缩进,2.1,程序的格式框架,01,分层缩进,a=5,b=12,if a=b:,a=a+10,print(a),else:,b=b+10,print(b),判断两个数的大小,大数加,10,,并输出。,代码如下:,2.1,程序的格式框架,01,分层缩进,注意事项:,缩进可通过,Tab,键和多个空格(一般是,4,个空格)来实现,但是二者不能混合使用。,缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量。,Python,对语句之间的层次关系没有限制,可以嵌套使用多层缩进。,2.1,程序的格式框架,02,代码注释是用于提高代码可读性的辅助性文字,不会被执行,会被编译器或者解释器略过。,注释有利于代码的维护和阅读,给代码添加注释是一个良好的编程习惯。,Python,支持两种格式的注释:单行注释和多行注释。,代码注释,2.1,程序的格式框架,02,单行注释。,代码注释,#,文件名:,perimeter22.py,r=2,#,求半径为,2,的圆的周长,perimeter=3.14*r*2,print(perimeter)#,输出圆的周长,12.56,2.1,程序的格式框架,02,多行注释以,3,个单引号,(),或,3,个双引号,(),表示注释的开始,以,3,个单引号,(),或,3,个双引号,(),表示注释结束。,代码注释,这是多行注释,使用单引号。,这是多行注释,使用单引号。,这是多行注释,使用单引号。,这是多行注释,使用双引号。,这是多行注释,使用双引号。,这是多行注释,使用双引号。,2.1,程序的格式框架,03,Python,对每行代码的长度是没有限制的,但是单行代码太长不利于阅读,因此可以使用续行符将单行代码分割为多行。,Python,的续行符用反斜杠(,)符号表示。,续行符,续行符的例子。代码如下:,print(,我是一名程序员,,我刚开始,学,Python),我是一名程序员,我刚开始学,Python,2.1,程序的格式框架,03,续行符,注意事项:,续行符后面不能跟空格。,续行符后直接换行,且换行后必须写内容。,2.2,标识符与关键字,01,标识符是开发人员在程序中自定义的一些符号和名称,如变量名、函数名、数组名、类名等。,标识符,Python,关于标识符的语法规则如下:,标识符由字母、下画线和数字组成,长度不受限制。,标识符的第一个字符不能是数字字符。,标识符不能是关键字。,标识符区分大小写。,2.2,标识符与关键字,02,关键字,也称为保留字,是具有特定用途或者被赋予特殊意义的单词,,Python,不允许开发者自己定义和关键字同名的标识符。,标识符与关键字的例子。代码如下:,关键字,flag=False,name=Luren,if name=python:,flag=True,print(welcome boss),else:,print(name),Luren,2.3,数据类型,01,数字类型用于存储数值。他们是不可改变的数据类型。,数字类型,Python,支持以下,4,种不同的数字类型:,int,(有符号整数类型),bool,(长整数类型,也可以代表八进制和十六进制),float,(浮点数类型),complex,(复数),2.3,数据类型,02,整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会因四舍五入而产生误差。,整数和浮点数的例子。代码如下:,数字类型,i1=12,i2=0 x3F2,i3=i1+i2,print(i3),f1=1.23,f2=1.23e4,f3=f1+f2,print(f3),1022,12301.23,2.3,数据类型,02,字符串是以一对单引号(,)或一对双引号(,“”,)括起来的任意文本。,数字类型,a=hello world,print(a),b=Im a cat,print(b),字符串类型的例子。代码如下:,hello world,Im a cat,2.4,语句概述,01,Python,的表达式语句由表达式组成。,表达式语句,a=3#,赋值表达式语句,b=4#,赋值表达式语句,sum=a+b#,算术表达式语句,T=ab#,关系表达式语句,B=a3 and b4#,逻辑表达式语句,print(a,b,sum,T,B),表达式语句的例子。代码如下:,3 4 7 False False,2.4,语句概述,02,赋值语句包含,3,部分:左值、赋值运算符和右值。赋值语句有两个用途:定义新的变量和让已定义的变量指向特定值。,赋值语句,x=20,赋值语句的基本形式的例子。代码如下:,注意事项:,左值必须是变量。,右,值可以是变量、值或结果为值的任何表达式。,2.4,语句概述,03,1.,函数调用语句,其他语句,s=input(,请输入一个名字:,),print(s),函数调用语句的例子。代码如下:,请输入一个名字:张三,张三,2.,控制语句,控制语句分为分支语句和循环语句。,2.5,基本输入和输出函数,01,Python,提供了,print(),内置函数用于输出运算结果,默认的标准输出是显示器。,print(),函数的使用格式如下:,print(),函数,print(obj1,sep=,end=n,file=sys.stdout),说明:,表示可以省略的,参数。,sep,表示分隔符,默认是,。,end,表示结尾符,即句末的结尾符,默认为,n,。,file,表示输出位置,默认为,sys.stdout,,即命令行。,2.5,基本输入和输出函数,01,print(),函数,print(456)#,说明(,1,),print(456,abc,78,cat)#,说明(,2,),print(456,abc,78,cat,sep=#,end=)#,说明(,3,),file1=open(d:/data.txt,w)#,说明(,4,),print(456,abc,78,cat,file=file1),file1.close(),print(),函数的例子。代码如下:,456,456 abc 78 cat,456#abc#78#cat=,2.5,基本输入和输出函数,02,Python,提供了,input(),内置函数从标准输入读入一行文本,默认的标准输入是通过键盘实现的。,input(),函数的使用格式如下:,input(),函数,=input(,提示字符串,),说明:,变量和提示字符串都可以省略。,用户的输入以字符串形式返回给变量。,无论用户输入的是字符还是数字,按,Enter,键才算完成输入,按,Enter,键之前的所有内容将作为输入字符串赋给变量。,2.5,基本输入和输出函数,02,input(),函数,x=input(,请输入,x=),y=input(,请输入,y=),z=x+y,print(x+y=,z),input(),函数的例子。代码如下:,请输入,x=123,请输入,y=456,x+y=123456,2.5,基本输入和输出函数,03,Python,提供了,eval(),函数用来执行一个字符串表达式,并返回表达式的计算结果。,eval(),函数的使用格式如下:,eval(),函数,=eval(expression,globals,locals),说明:,expression,:一个,Python,表达式或,compile(),函数返回的代码对象。,globals,:可选,必须是字典对象(,dictionary,)。,locals,:可选,可以是任意映射对象(,map,)。,2.5,基本输入和输出函数,03,eval(),函数,x=4,y=eval(3*x),print(y=,y),z=eval(4/2),print(z=,z),k=eval(2+2),print(k=,k),eval(),函数一般使用的例子。代码如下:,y=12,z=2.0,k=4,2.5,基本输入和输出函数,03,eval(),函数,X=12,Y=13,Z=eval(input(,请输入有关于,X,和,Y,的表达式:,),print(Z=,Z),eval(),函数和,input(),函数结合使用的例子。代码如下:,请输入有关于,X,和,Y,的表达式:,X*2+Y*3,Z=63,本章小结,介绍了,Python,的基本语法元素,主要内容有:程序的格式框架、标识符与关键字、数据类型、语句概述、基本输入和输出函数等,帮助读者初步掌握编写,Python,程序的基本概念。,第,3,章,Python,基本数据类型,1,数字类型,2,数字类型的运算,3,字符串类型,4,字符串格式化,5,字符串类型的运算,6,类型判断和类型之间的转换,重点及难点,重点是掌握数字类型、数字类型的运算、字符串类型、字符串格式化、字符串类型的运算、类型判断和类型之间的转换。,难点是数字类型的运算、字符串格式化、字符串类型的运算。,知识导图,3.1,数字类型,01,整数类型的常量有,4,种表示方式:二进制、十进制、八进制和十六进制。,整数类型,x=0B1100#,十进制数,12,y=0o44#,十进制数,36,z=x+y,print(z),48,进制运算的例子。代码如下:,程序运行后的结果如下:,number=12,print(hex(number)#,十进制转换成十六进制,print(oct(number)#,十进制转换成八进制,print(bin(number)#,十进制转换成二进制,num_hex=0 x10,num_oct=0o10,num_bin=0b10,print(int(num_hex,16),print(int(num_oct,8),print(int(num_bin,2),0 xc,0o14,0b1100,16,8,2,进制转换的例子。代码如下:,程序运行后的结果如下:,3.1,数字类型,02,浮点数类型的数字由整数部分与小数部分组成,是指带有小数点的数字。浮点数的数值范围有限制,小数精度也有限制,具体限制由不同计算机系统决定。,浮点数类型,浮点数类型的常量有两种表示:十进制形式带有小数点和科学记数法。,(,1,)十进制形式带有小数点,例如,1.2,、,1.2,。,(,2,)科学记数法使用字母,E,或者,e,作为幂的符号,,以,10,作为基数,例如,1.2e3,、,3.6E-3,。,x=2.01+3.02,print(x=,x),t1=x=5.03,print(t1=,t1),y=round(x,2),print(y=,y),t2=y=5.03,print(t2=,t2),x=5.029999999999999,t1=False,y=5.03,t2=True,浮点数的例子。代码如下:,程序运行后的结果如下:,3.1,数字类型,03,用复数类型来表示数学中的复数。复数由实数部分和虚数部分构成,其中虚数部分不能单独存在,它们总是和实数部分一起构成一个复数。,复数类型,Python,语言的复数类型的一般格式如下:,real+imagj,x=64.375+1j,y=4.23-8.5j,z=x+y,print(z.real,+,z.imag,j),print(z),68.605+-7.5 j,(68.605-7.5j),复数的例子。代码如下:,程序运行后的结果如下:,3.2,数字类型的运算,01,Python,支持,7,种数值运算操作符。,数值运算操作符,result1=x+y,result2=x/y,result3=x*2,result4=result3*2/7,result5=5%x,Print(result1=,result1,result2=,result2,result3=,result3),print(result4=,result4,result5=,result5),result1=2.01,result2=200.0,result3=4.0,result4=1.0,result5=1.0,数值运算操作符的例子。代码如下:,程序运行后的结果如下:,(,1,)加减乘除运算与数学含义是一致的。,(,2,)整数除(,/,)运算的结果是不大于,result3*2,与,7,之,商的最大整数。,(,3,)模(,%,)运算的结果是,04,区间的值。,3.2,数字类型的运算,01,数值运算操作符与赋值操作符的组合。,数值运算操作符,x=10,y=20,y+=x,print(y=,y),x*=2,print(x=,x),y%=21,print(y=,y),y=30,x=100,y=9,数值运算操作符与赋值操作符的组合的例子。代码如下:,程序运行后的结果如下:,数值运算操作符与赋值操作符之间不能有空格。,3.2,数字类型的运算,02,Python,提供了一些与数值运算相关的函数。,数值运算函数,d=divmod(10,3),print(divmod(10,3),返回值为,d),pow1=pow(2,3),print(pow(2,3),返回值为,pow1),pow2=pow(2,3,3),print(pow(2,3,3),返回值为,pow2),round1=round(0.1415926),print(round(0.1415926),返回值为,round1),round2=round(0.1415926,4),print(round(0.1415926,4),返回值为,round2),maxfloat=max(5.1,4.4,6.3,1.9),print(max(5.1,4.4,6.3,1.9),返回值为,maxfloat),minfloat=min(5.1,4.4,6.3,1.9),print(min(5.1,4.4,6.3,1.9),返回值为,minfloat),x=int(3.14),print(int(3.14),返回值为,x),y=float(3),print(float(3),返回值为,y),z=complex(3.14),print(complex(3.14),返回值为,z),数值运算函数的例子。代码如下:,divmod(10,3),返回值为,(3,1),pow(2,3),返回值为,8,pow(2,3,3),返回值为,2,round(0.1415926),返回值为,0,round(0.1415926,4),返回值为,0.1416,max(5.1,4.4,6.3,1.9),返回值为,6.3,min(5.1,4.4,6.3,1.9),返回值为,1.9,int(3.14),返回值为,3,float(3),返回值为,3.0,complex(3.14),返回值为,(3.14+0j),程序运行后的结果如下:,3.3,字符串类型,字符串是,Python,中最常用的数据类型,在,Python 3,中,可以使用单引号、双引号、,3,个单引号、,3,个双引号来创建字符串。字符串创建后,不能进行元素增加、修改与删除等操作。,str1=I am a cat!,print(,单引号创建字符串:,str1),str2=Im a cat!,print(,双引号创建字符串:,str2),str3=,我是中国人!,我爱我的祖国!,祖国繁荣昌盛!,print(str3),print(,我是一名程序员!,我热爱我的工作!,),单引号创建字符串:,I am a cat!,双引号创建字符串:,Im a cat!,我是中国人!,我爱我的祖国!,祖国繁荣昌盛!,我是一名程序员!,我热爱我的工作!,Python,有一些特殊字符可用转义字符,(),进行转义。,str1=,我是中国人!,print(str1),str2=,我是中国人!,print(str2),str3=t,我是中国人!,print(str3),我是中国人!,我是中国人!,我是中国人!,转义字符的例子。代码如下:,程序运行后的结果如下:,字符串的索引,01,3.3,字符串类型,字符串是字符的有序集合,所以通过位置就可以获取具体的元素。在,Python,语言中,字符串中的字符是通过索引来获取的。字符串的索引的一般格式如下:,索引,str=,字符串中的字符是通过索引来提取的,print(str2),print(str-2),print(,通过索引来提取的,-2),串,取,取,字符串的索引的例子。代码如下:,程序运行后的结果如下:,字符串的切片,02,3.3,字符串类型,字符串的切片操作可以从一个字符串中获取字符串的一部分。字符串的切片的一般格式如下:,start:end:step,str=,字符串中的字符是通过索引来提取的,print(str-3:),print(str:2),print(str:-1),提取的,字串的符通索来取,的取提来引索过通是符字的中串符字,字符串的切片的例子。代码如下:,程序运行后的结果如下:,%,格式符方式,%(name)flagswidth.precisiontypecode,01,3.4,字符串格式化,字符串格式化用于解决字符串和变量同时输出时的格式安排问题。在字符串中结合变量时,需要使用字符串的格式化方式。,Python,一般采用两种格式化方式:,%,格式符方式和,format,方式。,(,1,),(name),:变量命名。,(,2,),flags,:旗帜位。其中,,+,表示左对齐;,-,表示右对齐;,表,示在正数左侧添加一个空格使其和负数对齐;,0,表示在数,字左侧添加一个,0,进行填充。,(,3,),width,:占有宽度。,(,4,),precision,:精度。,(,5,),typecode,:类型符。,x=15,print(%04d%x),y=4.3,print(%.3f%y),n1=I am%s age%d%(,张三,26),n2=I am%(name)s age%(age)d%name:,李四,age:28,n3=I am 03345m%(name)s0330m%name:,王五,print(n1),print(n2),print(n3),0015,4.300,i am,张三,age 26,i am,李四,age 28,i am,王五,字符串的,%,格式符方式的例子。代码如下:,程序运行后的结果如下:,format,方式,:fillalignsign#0width,.precisiontype,02,3.4,字符串格式化,(,1,),fill,:空白处可以填充的字符。,(,2,),align,:对齐方式,其中,表示内容右对齐,,=,表示内容右对齐,,表示内容居中。,(,3,),sign,:有无符号数字,其中,+,表示正数加正号,负数加负号;,-,表示正数不变,负数加负号;,表示正数加空格,负数加负号。,(,4,),#,:对于二进制数、八进制数、十六进制数,如果加上,#,,则分,别显示,0b,、,0o,、,0 x,,否则不显示。,(,5,),:为数字添加分隔符。,(,6,),width,:占有宽度。,(,7,),precision,:精度。,(,8,),typecode,:类型符。,a=I am 0,,,I am 1 years old.format(,张三,26),print(a)#,(,1,),b=I am name,,,I am age:d years old.format(*name:,李四,age:28),print(b)#,(,2,),c=,原数为,:d,二进制为,:b,,八进制为,:o,,十六进制,x,为,:x,,十六进制,X,为,:X.format(20,20,20,20,20),print(c)#,(,3,),d=-name:*10s-=age:=18:,print(your age is,:,age),print(adult),注意:在,Python,语言程序设计过程中,代码的行首用空白(空格或制表符)的缩进层次,来决定语句的分组。这意味着同一层次的语句必须有相同的缩进,这样相同缩进的一组语句称为一个块。,双分支结构,:if-else,语句,if,条件表达式,:,语句块,A,else:,语句块,B,02,4.2,程序的分支结构,其功能是先计算条件表达式的值,当表达式的值为真时,则执行语句块,A,;当表达式的值为假时,则执行语句块,B,。,双分支结构,:if-else,语句,02,4.2,程序的分支结构,双分支结构,:if-else,语句,依据年龄判断是成年人还是青少年并输出结果。,age=20,if age=18:,print(your age is,age),print(adult),else:,print(your age is,age),print(teenager),多分支结构,:if-elif-else,语句,if,条件表达式,1:,elif,条件表达式,2:,elif,条件表达式,3:,.,else:,03,4.2,程序的分支结构,其功能是先计算条件表达式,1,,当表达式,1,的值为真时,执行语句块,1,,否则计算条件表达式,2,,当表达式,2,的值为真时,执行语句块,2,,以此类推,如果所有条件表达式的值都为假,则执行语句块,n,。,多分支结构,:if-elif-else,语句,03,4.2,程序的分支结构,多分支结构,:if-elif-else,语句,输入一个百分制成绩,要求输出成绩等级。,90,分及以上为,A,,,8089,分为,B,,,727079,分为,C,,,6069,分为,D,,,60,分以下为,E,。,score=int(input(,请输入成绩,:)#,接收用户输入的值,并转换成整数,if score=90:,print(A),elif score=80:,print(B),elif score=70:,print(C),elif score=60:,print(D),else:,print(E),请输出一个百分制成绩:,87,B,4.3,程序的循环结构,程序的循环结构,遍历循环,无限循环,Python,语言的循环结构包括两种:遍历循环和无限循环。,使用保留字,for,依次提取遍历结构各元素进行处理。,使用保留字,while,根据判断条件执行程序。,for,循环,for,变量,in,序列,:,循环体,else:,执行语句块,01,4.3,程序的循环结构,for.in,语句是最常用且结构清晰的一种循环,通过遍历序列中的每一个项目来执行循环,循环的次数取决于序列中项目的个数。,for,循环,01,4.3,程序的循环结构,for,循环,遍历字符串中的字符并输出。,str=hello,for c in str:,print(c),h,e,l,l,o,while,循环,while,条件表达式,:,循环体,else:,执行语句块,02,4.3,程序的循环结构,while,语句是另一种通过条件表达式来控制的循环,当条件满足时重复执行循环体中的语句,直到条件不满足时退出循环。,while,语句比,for,语句更加灵活,通常用于循环次数不定的场合。,while,循环,02,4.3,程序的循环结构,while,循环,求,1,到,10,累积,即,10,的阶乘,并输出累积结果。,c=1,i=1,while i=10:,c=c*i,i=i+1,print(c),3628800,嵌套循环,03,4.3,程序的循环结构,一个循环体内包含另一个完整的循环结构,称为循环的嵌套。,for,循环和,while,循环可以相互嵌套,循环的嵌套可以多层,但是必须保证每一层循环在逻辑上的完整性。,嵌套循环,打印由星号组成的倒三角图形。,for i in range(1,6):,for n in range(1,i):,print(,end=),for m in range(1,12-i*2):,print(*,end=),print(),*,*,*,*,*,循环控制,:break,和,continue,04,4.3,程序的循环结构,break,语句用来终止循环,即使循环条件表达式的值为真或者序列还没被遍历完,也会立即停止执行循环体的语句。,continue,语句用来跳过当前循环剩下的语句,转而继续进行下一轮的循环。,break,语句和,continue,语句都可以用在,while,和,for,循环语句,这两个语句通常都必须配合,if,语句来使用。,循环控制,:break,和,continue,模拟用户登录。,while True:,username=input(,请输入用户名:,),if username!=admin:,print(,用户名错误!,),continue,password=input(,请输入密码:,),if password=123456:,break,else:,print(,密码错误!,),print(,登录成功!,),请输入用户名:,a,用户名错误!,请输入用户名:,admin,请输入密码:,1,密码错误!,请输入用户名:,admin,请输入密码:,123456,登录成功!,本章小结,程序控制三种结构:顺序结构、分支结构和循环结构。,顺序结构是程序按照指令顺序向下执行的方式,分支结构是程序根据条件判断结果而选择不同执行路径的方式,循环结构是程序中需要反复执行某个功能而设置的一种程序结构。,可以结合,break,和,continue,语句改变循环结构的执行流程,,break,和,continue,语句对循环控制的影响是不同的。,break,语句是结束整个循环过程,不再判断执行循环的条件是否成立;,continue,语句只结束本次循环,并不中止整个循环的执行。,第,5,章,函数与模块,1,函数的定义与调用,2,函数的参数传递,4,代码模块化与复用,3,变量的作用域,知识点及难点,知识导图,5.1,函数的定义与调用,一个大型的任务可以划分为多个小任务,每个小任务又可以划分为几个更小的任务或步骤。,01,函数就是把具有独立功能的代码块组成一个小模块,并在需要的时候调用。在开发程序时,使用函数可以提高编程的效率。代码的重用函数是带名字的代码块,用于在程序中需多次执行同一项任务时,无须反复编写完成该任务的代码,而只需调用能完成该任务的函数。,函数的定义,5.1,函数的定义与调用,01,函数定义的格式为:,def,函数名,(,),:,return,函数的定义,注意事项:,def,是英文单词,define,的缩写。,函数名要求是一个有效的,Python,标识符。,参数列表中的参数是形式参数,简称为,“,形参,”,,,多个参数之间用逗号隔开,当没有参数时也要保留圆括号。,5.1,函数的定义与调用,01,函数的定义,注意事项:,函数体由一行或多行语句组成,在函数被调用时执行。,函数如果需要返回值,可以使用,return,语句和返回值列表来实现。函数也可以没有,return,语句。,函数,结束后会把控制权交回给调用者。,5.1,函数的定义与调用,01,函数的定义,def func():,print(,无参函数,),func(),无参函数。代码如下:,无参函数,注意事项:,pass,语句表示什么都不做,用作占位符。,pass,语句不能省略。,5.1,函数的定义与调用,02,函数定义后不能直接运行,需要经过调用才能运行。,函数的调用,函数调用,的格式为:,函数名,(,),5.1,函数的定义与调用,02,函数的调用,import math,print(math.sqrt(abs(-4),调用内置函数,实现对数值,-4,先求绝对值再开平方,最后输出结果。代码如下:,2.0,5.1,函数的定义与调用,02,函数的调用,注意事项:,abs(),函数是用来求绝对值。,sqrt(),函数是用来求平方根。,调用函数的时候,传入的参数的数量和参数的类型要正确,。,5.1,函数的定义与调用,02,函数的调用,def func(x,y):,sum=x*y,print(x*y=,sum),func(10,20),a=20,b=30,func(a,b),调用用户自定义函数,创建两个数相乘并输出结果的函数。代码如下:,x*y=200,x*y=600,5.1,函数的定义与调用,02,函数的调用,注意:,可以根据需要调用函数任意次。,通过函数名调用函数时,需要对函数的各个参数赋予实际值,该值可以是实际数据,也可以是在调用函数前已经定义过的变量。,函数,的功能与黑盒相似,使用者不需要了解函数的内部实现原理,只需要了解函数的输入和输出就可以了。,5.1,函数的定义与调用,03,如果需要在程序中对函数的处理结果做进一步处理,则函数需要有返回值。,函数的返回值,函数返回值的格式为:,return,值,5.1,函数的定义与调用,03,函数的返回值,注意:,return,语句用来结束函数并将程序返回到函数被调用的位置,然后继续执行代码。,return,语句可以出现在函数中的任何位置。,return,语句是一个函数结束的标志,函数内可以有多个,return,语句,但只要执行一次,return,语句,整个函数就会结束运行。,return,语句的返回值无类型限制,即可以是任意数据类型。,5.1,函数的定义与调用,03,函数的返回值,注意:,return,语句的返回值无个数限制,即可以用逗号分隔开多个任意类型的返回值。,5.1,函数的定义与调用,03,函数的返回值,def max2(x,y):,if x y:,return x,else:,return y,print(,判断,x,,,y,两数的大小,输出较大数:,max2(50,40),判断,x,,,y,两数的大小,输出较大数。代码如下:,判断,x,,,y,两数的大小,输出较大数:,50,5.1,函数的定义与调用,03,函数的返回值,def func(x,y):,re=x%y,dis=(x-re)/y,return(re,dis)#,也可以写作,return re,dis,a,b=func(9,4)#,也可以写作,(a,b)=func(9,4),print(,余数是:,a,,商是:,b),x,除以,y,并输出余数和商的函数。代码如下:,余数是:,1,,商是:,2.0,5.2,函数的参数传递,函数在定义时,参数列表中参数是形式参数,简称为,“,形参,”,。函数在调用时,实际赋值参数列表中的参数是实际参数,简称为,“,实参,”,。,01,位置参数传递,位置参数是指必须以正确的顺序传入函数,并且调用时的数量必须和声明时一样的函数的参数。,5.2,函数的参数传递,01,位置参数传递,def func(x,y,z):,return x*2+y*2+z*2,z=func(2,3,4),print(z=,z),定义一个函数,func(),,用于计算,3,个数的平方和,并返回计算结果。代码如下:,z=29,5.2,函数的参数传递,02,按照关键字传递参数的函数的调用格式为:,(=),关键字参数传递,说明:,使用参数名称传递参数时允许函数调用时参数的顺序与声明时不一致,即参数之间的顺序可以任意调整,因为,Python,的解释器能够通过参数名匹配参数值。,5.2,函数的参数传递,02,关键字参数传递,def mult(a,b):,result=a/b,print(result=,result),mult(b=20,a=30),mult(a=40,b=20),定义一个函数,mult(),,用于计
展开阅读全文