Python程序设计教程第4章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计教程第4章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 教程 课件
- 资源描述:
-
1、第第4章章 Python函数函数函数(函数(functionfunction)由若干)由若干条语句组成,用于实现特条语句组成,用于实现特定的功能。函数包含函数定的功能。函数包含函数名、若干参数和返回值。名、若干参数和返回值。一旦定义了函数,就可以一旦定义了函数,就可以在程序中需要实现该功能在程序中需要实现该功能的位置调用该函数,给程的位置调用该函数,给程序员共享代码带来了很大序员共享代码带来了很大方便。在方便。在PythonPython语言中,语言中,除了提供丰富的系统函数除了提供丰富的系统函数(本书前面已经介绍了一(本书前面已经介绍了一下常用的系统函数)外,下常用的系统函数)外,还允许用户创
2、建和使用自还允许用户创建和使用自定义函数。定义函数。本章知识点本章知识点p声明函数声明函数p在函数中传递参数在函数中传递参数p变量的作用域变量的作用域pPythonPython内置函数内置函数p调用函数调用函数p方法调用方法调用p函数的返回值函数的返回值p全局变量和局部变量全局变量和局部变量p函数式编程函数式编程4.1 声明和调用函数声明和调用函数4.1.1 4.1.1 声明函数声明函数4.1.2 4.1.2 调用函数调用函数4.1.1 声明函数声明函数p可以使用可以使用defdef关键字来创建关键字来创建PythonPython自定义自定义函数,其基本语法结构如下:函数,其基本语法结构如下:
3、defdef 函数名函数名 ( (参数列表参数列表):):函数体函数体p参数列表可以为空,即没有参数;也可参数列表可以为空,即没有参数;也可以包含多个参数,参数之间使用逗号(以包含多个参数,参数之间使用逗号(, ,)分隔。函数体可以是一条语句,也可)分隔。函数体可以是一条语句,也可以由一组语句组成。以由一组语句组成。【例例4-1】 p创建一个非常简单的函数创建一个非常简单的函数PrintWelcome,它的功能是打印,它的功能是打印字符串字符串“欢迎使用欢迎使用Python”,代码,代码如下:如下:def PrintWelcome():print(欢迎使用欢迎使用Python);【例例4-2】
4、定义函数定义函数PrintString()PrintString(),通过参数决定要打印,通过参数决定要打印的内容。的内容。def PrintString(str):def PrintString(str):print(str);print(str);变量变量strstr是函数的参数。在函数体中,参数可以是函数的参数。在函数体中,参数可以像其他变量一样被使用。像其他变量一样被使用。可以在函数中定义多个参数,参数之间使用逗号可以在函数中定义多个参数,参数之间使用逗号分隔。分隔。【例例4-3】p定义一个函数定义一个函数sum()sum(),用于计算并打印两,用于计算并打印两个参数之和。函数个参数之
5、和。函数sum()sum()包含两个参数。包含两个参数。参数参数num1num1和和num2num2,代码如下:,代码如下:defdef sum(num1, num2): sum(num1, num2):print(num1 + num2);print(num1 + num2);4.1.2 调用函数调用函数p可以直接使用函数名来调用函数,无可以直接使用函数名来调用函数,无论是系统函数还是自定义函数,调用论是系统函数还是自定义函数,调用函数的方法都是一致的。函数的方法都是一致的。【例例4-4】print(len(student);print(len(student);程序得到运行结果为程序得到运
6、行结果为7 7。【例例4-5】p 调用【例调用【例4-34-3】中声明的函数】中声明的函数sum()sum(),计,计算算100+200100+200之和,代码如下:之和,代码如下:sum(100, 200);sum(100, 200);程序得到运行结果为程序得到运行结果为300300。4.2 参数和返回值参数和返回值4.2.1 4.2.1 在函数中传递参数在函数中传递参数4.2.2 4.2.2 函数的返回值函数的返回值4.2.1 在函数中传递参数在函数中传递参数p1 1普通参数普通参数pPythonPython实行按值传递参数。值传递指调实行按值传递参数。值传递指调用函数时将常量或变量的值(
7、通常称其用函数时将常量或变量的值(通常称其为实参)传递给函数的参数(通常称其为实参)传递给函数的参数(通常称其为形参)。值传递的特点是实参与形参为形参)。值传递的特点是实参与形参分别存储在各自的内存空间中,是两个分别存储在各自的内存空间中,是两个不相关的独立变量。因此,在函数内部不相关的独立变量。因此,在函数内部改变形参的值时,实参的值一般是不会改变形参的值时,实参的值一般是不会改变的。【例改变的。【例4-54-5】介绍的程序都属于按】介绍的程序都属于按值传递参数的情况。值传递参数的情况。【例例4-6】 在函数中按值传递参数的在函数中按值传递参数的例子例子def func(num):def f
8、unc(num):num += 1;num += 1;a = 10a = 10func(a);func(a);print(a);print(a);【例例4-7】 分别打印形参和实参的地分别打印形参和实参的地址址def func(num):def func(num): print address of num: , print address of num: , id(num)id(num)a = 10a = 10func(a);func(a);printaddress of a: , id(a);printaddress of a: , id(a);运行结果如下:运行结果如下:address
9、of num: 37844516address of num: 37844516address of a: 37844516address of a: 378445162列表和字典参数列表和字典参数p 【例例4-84-8】 使用列表作为函数参数的例子。使用列表作为函数参数的例子。defdef sum(list): sum(list):total = 0;total = 0;for x in range(for x in range(lenlen(list):(list):print print strstr(listx)+;(listx)+;total+= listx;total+= list
10、x;print = + print = + strstr(total);(total);list = 10, 20, 30, 40list = 10, 20, 30, 40sum(list);sum(list);运行结果运行结果10+10+20+20+30+30+40+40+=100=100【例例4-9】 使用字典作为函数参数的例子使用字典作为函数参数的例子defdef print_dictprint_dict( (dictdict):):for (k, v) in for (k, v) in dict.itemsdict.items():():print print dictdict%s =
11、 % k, v%s = % k, vdictdict = a : apple, b : = a : apple, b : banana, g : grape, o : banana, g : grape, o : orangeorangeprint_dictprint_dict( (dictdict););运行结果运行结果dicto = orangedicto = orangedictg = grapedictg = grapedicta = appledicta = appledictb = bananadictb = banana【例例4-10】 在函数中修改列表参数的在函数中修改列表参数
12、的例子例子def swap(list):def swap(list): temp = list0 temp = list0 list0 = list1 list0 = list1 list1 = temp list1 = templist = 1,2list = 1,2print(list)print(list)swap(list)swap(list)print(list)print(list)运行结果运行结果10, 2010, 2020, 1020, 10【例例4-11】 在函数中修改字典参数的在函数中修改字典参数的例子例子def changeA(dict):def changeA(dict
13、): dicta = 1 dicta = 1 d = a: 10, b: 20, c: 30d = a: 10, b: 20, c: 30changeA(d)changeA(d)print(d)print(d)运行结果运行结果a: 1, c: 30, b: 20a: 1, c: 30, b: 203参数的默认值参数的默认值p在在PythonPython中,可以为函数的参中,可以为函数的参数设置默认值。可以在定义函数设置默认值。可以在定义函数时,直接在参数后面使用数时,直接在参数后面使用“= =”为其设置默认值。在调用为其设置默认值。在调用函数时可以不指定拥有默认值函数时可以不指定拥有默认值的参
14、数的值,此时在函数体中的参数的值,此时在函数体中以默认值作为该参数以默认值作为该参数【例例4-12】 设置参数默认值的例子设置参数默认值的例子defdef say(message, times = 1): say(message, times = 1): print(message print(message * * times) times)say(hello)say(hello)say(Python, 3)say(Python, 3)p函数函数say()say()有有2 2个参数:个参数:messagemessage和和timestimes。其中。其中timestimes的默认值为的默认值
15、为1 1。运行结果如下:。运行结果如下:hellohelloPythonPythonPythonPythonPythonPython【例例4-13】def func1(a = 1, b, c=10):def func1(a = 1, b, c=10):d = a + b d = a + b * * c; c;func(10, 20, 30)func(10, 20, 30)【例例4-13】的运行结果的运行结果4可变长参数可变长参数pPythonPython还支持可变长度的参数列表。可变长参还支持可变长度的参数列表。可变长参数可以是元祖或字典。当参数以数可以是元祖或字典。当参数以* *开头时,表开
16、头时,表示可变长参数将被视为一个元祖,格式如下:示可变长参数将被视为一个元祖,格式如下:defdef funcfunc( (* *t):t):p在在funcfunc () ()函数中函数中t t被视为一个元祖,使用被视为一个元祖,使用tindextindex获取每一个可变长参数。获取每一个可变长参数。p可以使用任意多个实参调用可以使用任意多个实参调用funcfunc()()函数,例如函数,例如:funcfunc(1,2,3,4)(1,2,3,4)【例例4-14】 以元祖为可变长参数的实以元祖为可变长参数的实例例defdef func1( func1(* *t):t): print( print
17、(可变长参数数量如下:可变长参数数量如下:) print( print(lenlen(t)(t) print( print(依次为:依次为:) for x in range( for x in range(lenlen(t):(t): print(tx); print(tx);func1(1,2,3,4);func1(1,2,3,4);p 运行结果如下:运行结果如下:可变长参数数量如下:可变长参数数量如下:4 4依次为:依次为:1 12 23 34 4【例例4-15】 使用可变长参数计算任意使用可变长参数计算任意个指定数字之和个指定数字之和defdef sum( sum(* *t):t): s
18、um=0; sum=0; for x in range( for x in range(lenlen(t):(t): print( print(strstr(tx)+);(tx)+); sum += tx; sum += tx; print(=+ print(=+strstr(sum);(sum);sum(1,2);sum(1,2);sum(1,2,3,4);sum(1,2,3,4);sum(11,22,33,44,55);sum(11,22,33,44,55);结果如下结果如下1+1+2+2+=3=31+1+2+2+3+3+4+4+=10=1011+11+22+22+33+33+44+44+
19、55+55+=165=165【例例4-16】def sum(def sum(* *t):t): sum=0; sum=0; for x in range(len(t): for x in range(len(t): print(str(tx)+); print(str(tx)+); sum += tx; sum += tx; if len(t)0: if len(t)0: print(=+str(sum); print(=+str(sum);sum();sum();【例例4-17】def sum(def sum(* * *t):t): print(t); print(t);sum(a=1,b=
20、2,c=3);sum(a=1,b=2,c=3);4.2.2 函数的返回值函数的返回值对对【例例4-34-3】中的中的sum()sum()函数进行改造,通过函数的返回值返回相加的结函数进行改造,通过函数的返回值返回相加的结果,代码如下:果,代码如下:def sum(num1, num2):def sum(num1, num2): return num1 + num2; return num1 + num2;print(sum(1, 3);print(sum(1, 3);运行结果为运行结果为4 4。【例例4-19】 defdef filter_evenfilter_even(list):(list
21、): list1 = ; list1 = ; for for i i in range( in range(lenlen(list):(list): if list if listi i %2 =0: %2 =0: list1.append(list list1.append(listi i) i i -=1; -=1; return list1; return list1;list=1,2,3,4,5,6,7,8,9,10list=1,2,3,4,5,6,7,8,9,10list2 = list2 = filter_evenfilter_even(list)(list)print(list2
22、);print(list2);4.3 全局变量和局部变量全局变量和局部变量p4.3.1 4.3.1 变量的作用域变量的作用域p4.3.2 4.3.2 在在IDLEIDLE的调试窗口中查看变量的的调试窗口中查看变量的值值p4.3.3 4.3.3 在在PyCharmPyCharm的调试窗口中查看变的调试窗口中查看变量的值量的值3.1.3 变量的作用域变量的作用域p局部变量只在定义它的函数内部有效,局部变量只在定义它的函数内部有效,在函数体之外,即使使用同名的变量,在函数体之外,即使使用同名的变量,也会被看作是另一个变量。全局变量在也会被看作是另一个变量。全局变量在定义后的代码中都有效,包括它后面定
23、定义后的代码中都有效,包括它后面定义的函数体内。如果局部变量和全局变义的函数体内。如果局部变量和全局变量同名,则在定义局部变量的函数中,量同名,则在定义局部变量的函数中,只有局部变量是有效的。只有局部变量是有效的。【例例4-20】a = 100;a = 100;# # 全局变量全局变量defdef setNumbersetNumber():():a = 10;a = 10;# # 局部变量局部变量print(a);print(a);# # 打印局部变量打印局部变量a asetNumbersetNumber();();print(a);print(a);# # 打印全局变量打印全局变量$a$a4
24、.3.2 在在IDLE的调试窗口中查看变量的调试窗口中查看变量的值的值p1 1设置断点设置断点p2 2单步调试单步调试1设置断点设置断点断点是调试器的功能之一,可以让程序中断在需断点是调试器的功能之一,可以让程序中断在需要的地方,从而方便对其进行分析。用鼠标右击要的地方,从而方便对其进行分析。用鼠标右击要设置断点的程序行,在快捷菜单里选择要设置断点的程序行,在快捷菜单里选择Set Set BreakpontBreakpont菜单项,会在当前行设置断点,该行菜单项,会在当前行设置断点,该行代码会显示黄色背景代码会显示黄色背景。2单步调试单步调试p 设置断点后,运行程序,可以停设置断点后,运行程序
25、,可以停在断点处,然后一条语句一条语在断点处,然后一条语句一条语句的单步运行。单步调试可以看句的单步运行。单步调试可以看到程序的运行过程,同时可以查到程序的运行过程,同时可以查看在某一时刻某个变量的值。下看在某一时刻某个变量的值。下面介绍在面介绍在IDLEIDLE中单步调试程序的中单步调试程序的方法。方法。p 例如在例如在IDLEIDLE中打开例中打开例3-7.py3-7.py,然,然后在菜单中选择后在菜单中选择Run / Python Run / Python ShellShell,打开,打开Python ShellPython Shell窗口窗口。在。在Python ShellPython
展开阅读全文