Python程序设计基础教程(微课版) 课件 代崴 第4章 - 序列、集合与字典;第5章 - Python自定义函数_第1页
Python程序设计基础教程(微课版) 课件 代崴 第4章 - 序列、集合与字典;第5章 - Python自定义函数_第2页
Python程序设计基础教程(微课版) 课件 代崴 第4章 - 序列、集合与字典;第5章 - Python自定义函数_第3页
Python程序设计基础教程(微课版) 课件 代崴 第4章 - 序列、集合与字典;第5章 - Python自定义函数_第4页
Python程序设计基础教程(微课版) 课件 代崴 第4章 - 序列、集合与字典;第5章 - Python自定义函数_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计第4章

序列、集合与字典学习目标理解数据容器应用场景掌握常用容器对象的创建和操作知识目标能够使用常用容器存储和操作数据能够正确选择容器解决实际问题能力目标追求创新,避免重复造车轮个人职责的重要性团队协作与组织的重要性情感态度与价值观什么是数据容器01020403序列集合字典目

录什么是数据容器01020403序列集合字典目

录数据容器的概念数据容器:可以存储多个数据项的复合数据类型序列:字符串、列表、元组集合字典每种容器都有其特定的方法,应根据具体的应用场景和需求,选择合适的容器什么是数据容器71什么是数据容器01020403序列集合字典目

录序列020403集合字典目

录什么是数据容器01字符串列表元组切片序列:存储有序的元素集合字符串列表元组4.1序列71元素按插入的顺序排列位置关系固定通过索引访问任意元素正数索引:左->右负数索引:右->左字符串:零个或多个字符组成的有序字符序列多行注释:三引号对''''''""""""字符串字面量:单引号/双引号对'good'"100"注意:Python中单个字符也是字符串4.1.1字符串71字符串变量的定义4.1.1字符串72language='Python'author='GuidovanRossum'示例4-1变量=字符串字面量字符串变量的访问4.1.1字符串72info='hello'print(info)

#打印整个字符串print(info[1]) #打印info第二个字符(从左往右计数)print(info[-2]) #打印info第二个字符(从右往左计数)info[0]='H'

#错误:不可以修改已经创建的字符串中的字符info='Hello' #正确示例4-2字符串格式化%f-string字符串方法format()4.1.1字符串72常用占位符%d%f%s占位符:{}字符串格式化:f-string在字符串前加上字母“f”或“F”,可以将花括号“{}”内的表达式作为字符串的格式化参数4.1.1字符串72name='张三'age=18print(f'{name}今年{age}岁')#直接使用变量的值替换{}

a=5b=10print(f'a+b={a+b}')#用a+b的值替换{}

m=2.99print(f'梨子{m:.2f}元/斤')#冒号后面是指定的格式示例4-3字符串格式化:format()4.1.1字符串73#按实际参数出现的顺序逐个填入占位符name='张三'age=18print('{}今年{}岁'.format(name,age))示例4-4<模板字符串>.format(<逗号分隔的实际参数>)字符串格式化:format()4.1.1字符串73#按实际参数的位置索引填入相应的占位符var='{0}9元一斤,{1}10元四斤,{0}和{1}各买一斤多少钱?'print(var.format('苹果','桃子'))

#按关键参数填入相应的值var='小明今年{age}岁,正在读{school}。'print(var.format(age=17,school='高中'))示例4-4<模板字符串>.format(<逗号分隔的实际参数>)字符串运算+:连接左右两个字符串*:将字符串重复N次,字符串为左操作数,N为右操作数4.1.1字符串73str1='Hello,'str2='World!'result=str1+str2#打印结果:Hello,World!str1='abc'result=str1*3#打印结果:abcabcabc示例4-5、4-6Python提供一些内置函数处理字符串len():获取字符串长度4.1.1字符串73str1='abc'print(len(str1))#打印结果:3示例4-7函数名(待处理对象)len()也可用于其他数据容器,获取容器内元素个数chr():获取ASCII码对应的单个字符ord():获取单字符的ASCII码4.1.1字符串74x=123print(chr(x))#打印结果:{x='1'print(ord(x))#打印结果:49示例4-8、4-9字符串方法split()strip()join()find()……4.1.1字符串74字符串对象.方法名(参数)split():根据指定的分隔符,将字符串拆分成多个子字符串,并返回一个包含这些子字符串的列表sep:可选,指定分隔符字符串,如果不提供或为空字符串,默认使用空白符,包括空格、制表符、回车符等maxsplit:可选,指定最大拆分次数4.1.1字符串74字符串对象.split([sep,maxsplit])split()使用4.1.1字符串74#使用默认分隔符(空白符)str1='HelloWorldfromPython'result=str1.split()print(result)#输出:['Hello','World','from','Python']#指定分隔符(,)str1='apple,banana,orange'result=str1.split(',')print(result)#输出:['apple','banana','orange']示例4-10split()使用4.1.1字符串74#指定最大切分次数为2str1='apple,banana,orange,grape'result=str1.split(',',2)print(result)#输出:['apple','banana','orange,grape']示例4-10strip():删除字符串开头和结尾的指定字符chars:可选,指定要删除的字符,如果不提供或为空字符串,默认删除空白符4.1.1字符串75字符串对象.strip([chars])strip()使用4.1.1字符串75#删除头尾空白符str1='Hello,World!'result=str1.strip()print(result)#输出:'Hello,World!'#删除头尾的尖括号str1='<<<Hello,World!>>>'result=str1.strip('<>')print(result)#输出:'Hello,World!'示例4-11join():将列表、元组或其他可迭代对象中的字符串按照指定的分隔符连接起来separator:指定的分隔符字符串iterable:要将元素连接起来的可迭代对象4.1.1字符串75separator.join(iterable)join()使用4.1.1字符串75words=['apple','banana','orange']result=','.join(words)#以','连接列表对象word中的所有字符串print(result)#输出:'apple,banana,orange'示例4-12find():在字符串中查找子字符串的位置,如果找到了子字符串,返回其第一个字符的索引;如果没有找到,返回-1sub:要查找的子串start:可选,指定开始查找的索引,默认为0,表示从字符串第一个元素开始找end:可选,指定结束查找的索引,默认为字符串的长度查找的索引范围:[start,end)4.1.1字符串75字符串对象.find(sub[,start[,end]])find()使用4.1.1字符串75str1='Hello,World!'#从第一个元素找到最后一个元素index=str1.find('World')print(index)#输出:7#在“Hello,”范围内找index=str1.find('World',0,6)print(index)#输出:-1示例4-13列表(list):存储一组有序元素特点元素可以是任何类型,且类型可以不同有序:元素在列表中的位置是固定的可变:可动态添加、删除、修改元素4.1.2列表76创建列表:[]“[]”内为空表示创建一个空列表对象多个元素作为初始值,这些元素之间用逗号隔开4.1.2列表76empty=[]fruits=['apple','banana','cherry']counter=[1,4,10]diff=['spam',2.0,5,[10,20]]示例4-14创建列表:list()根据其他对象(元组、range、字符串、集合等)的值,创建一个新的列表对象返回4.1.2列表77a=list()#创建空列表b=list('Helloworld!')#根据字符串创建列表示例4-15访问列表元素4.1.2列表77fruits=['apple','banana','cherry']print(fruits)#打印:['apple','banana','cherry']print(fruits[0])#打印结果:appleprint(fruits[-1])#打印结果:cherryfruits[1]='mango'print(fruits)#打印:['apple','mango','cherry']示例4-16获取元素位置:index()返回第一个匹配元素的索引,若不存在该元素则报错4.1.2列表77fruits=['apple','banana','cherry']print(fruits.index('cherry'))#打印结果:2示例4-16列表对象.index(item))增加元素(原地修改)append():向列表对象的末尾添加一个元素insert():在列表的指定位置插入一个元素4.1.2列表77列表对象.append(item)列表对象.insert(index,item)增加列表元素4.1.2列表78fruits=['apple','banana','cherry']fruits.append('orange')print(fruits)#打印结果:['apple','banana','cherry','orange']fruits.insert(1,'mango')print(fruits)#打印结果:['apple','mango','banana','cherry','orange']示例4-18删除元素(原地修改)pop():删除并返回指定索引的元素,默认删除最后一个remove():删除列表中首次出现的指定元素(原地修改)4.1.2列表78列表对象.pop([index])列表对象.remove(item)删除列表元素4.1.2列表78fruits=['apple','banana','cherry']x=fruits.pop()print(x)#打印结果:cherryfruits.remove('apple')print(fruits)#打印结果:['banana']示例4-19Python列表支持动态增长或缩减为保证数据存储区域的连续性,在列表中间增加、删除元素,或者原本分配的空间不够时,会进行数据移动不适合需要频繁增加、删除数据的场合当需要增删数据时,应尽量从列表尾部操作4.1.2列表78清空列表4.1.2列表78fruits=['apple','banana','cherry']fruits.clear()#fruits的id不变,仅删除其中所有元素fruits=[]#fruits的id变了,引用了一个新的空列表delfruits#fruits对象被删除,不能再使用了示例4-20遍历列表4.1.2列表79host_list=['172.18.5.1',

'172.18.5.2',

'172.18.5.3']foripinhost_list:print(ip)示例4-21列表元素排序sort():原地排序4.1.2列表79numbers=[19,23,-1,-10,3,14]numbers.sort()print(numbers)#打印结果:[-10,-1,3,14,19,23]numbers.sort(reverse=True)print(numbers)#打印结果:[23,19,14,3,-1,-10]示例4-21列表对象.sort()列表推导式:简洁的语法快速生成列表4.1.2列表79a=[x**2forxinrange(1,11)ifx%2==0]print(a)#打印结果:[4,16,36,64,100]importrandoma=[random.randint(1,20)foriinrange(5)]print(a)#打印结果:[9,18,8,1,4]示例4-23[元素表达式for循环变量in可迭代对象if条件表达式]决定列表元素值的计算方式列表元素的来源列表元素的个数满足条件才生成一个新元素示例4-23转换为普通for循环实现4.1.2列表79a=[x**2forxinrange(1,11)ifx%2==0]print(a)#打印结果:[4,16,36,64,100]===>a=[]forxinrange(1,11):ifx%2==0:a.append(x**2)示例4-23元组(tuple):存储一组有序元素特点元素可以是任何类型,且类型可以不同有序:元素在列表中的位置是固定的不可变:元组对象一旦创建,就不能修改其元素4.1.3元组80创建元组:()“()”内为空表示创建一个空元组对象多个元素作为初始值,这些元素之间用逗号隔开4.1.3元组80empty=()#创建空元组counter=(1,2,3,4,5)diff=('physics',4.24,1997)#元素类型可不相同fruits=('apple',)#只有一个元素时,元素后需添加逗号示例4-24创建元组:tuple()根据其他对象的值,创建一个新的元组对象返回4.1.3元组80a=tuple()#创建空列表b=tuple('Helloworld!')#根据字符串创建元组示例4-25访问元组元素4.1.3元组80fruits=('apple','banana','orange')print(fruits[1])#打印结果:bananafruits[1]='mango'#错误:不能修改元组的内容people=(['Alice',25,'Engineer'],['Bob',30,'Doctor'],['Charlie',35,'Teacher'],)people[0][1]=28#改后:['Alice',28,'Engineer']示例4-26遍历元组4.1.3元组80people=(['Alice',25,'Engineer'],['Bob',30,'Doctor'],['Charlie',35,'Teacher'],)forpinpeople:print(f'姓名:{p[0]},年龄:{p[1]},职业:{p[2]}')示例4-27切片操作:选取序列的子集start:切片开始的索引,默认为0stop:切片结束的索引(但不包括该位置的元素),默认为序列的长度step:选取元素的步长,默认为1,即连续选取start、stop可以使用正数或负数索引step为正数时要求从左至右取子集,为负数时要求从右至左取子集4.1.4切片81变量=序列对象[start:stop:step]序列的切片操作4.1.4切片81my_string='HelloWorld!'slice1=my_string[:5] #切片结果:Helloslice2=my_string[6:] #切片结果:World!numbers=[1,9,12,3,79,-1]split1=numbers[1:5]

#切片结果:[9,12,3,79]split2=numbers[1::2] #切片结果:[9,3,-1]split3=numbers[-1:-3:1]

#start至stop的方向与步长方向不一致,得到空列表[]split4=numbers[-1:-3:-1] #切片结果:[-1,79]示例4-28什么是数据容器01020403序列集合字典目

录集合0304字典目

录什么是数据容器0102序列集合的特点集合的创建集合的使用集合(set)无序性:集合不保证元素的顺序不重复性:每个元素都是唯一的元素类型可以不同,但必须是不可变数据类型或可哈希的4.2

集合84{}:必须至少包含一个元素set()4.2.1创建集合85numbers={1,2,3,1,5}#numbers包含:1、2、3、5fruits={'apple','banana','cherry'}diff={'spam',5,2.0,(10,20)}a=set()#创建空集合b=set('Helloworld!')#根据字符串创建集合示例4-29集合不支持索引使用in判断某个数据是否为集合的元素4.2.2访问集合元素85numbers={1,2,3,4,5}if1innumbers:print('是集合的元素,开始处理')else:print('不是集合的元素,其他处理')示例4-30add():将单个元素添加到集合中,如果集合中已经存在该元素,add()不会做任何事情4.2.3增加集合元素85fruits={'apple','banana'}fruits.add('orange')#现在fruits包含'apple'、'banana'、'orange'numbers={1,2,3}numbers.add(1)#现在numbers包含1、2、3示例4-31集合对象.add(item)discard():从集合中删除一个元素,如果指定的元素不存,discard()方法不会有任何效果4.2.4删除集合元素85fruits={'apple','banana','orange'}fruits.discard('banana')#现在fruits包含'apple'、'orange'示例4-32集合对象.discard(item)使用for循环遍历集合对象4.2.5遍历集合86ISBNs={'9787302629443','9787302629665','9787302567561'}forisbninISBNs:print(isbn)示例4-33sorted():内置函数,为非原地排序iterable:要排序的可迭代对象,排序后不发生变化key:可选,指定一个函数提取用于比较的数据reverse:可选,指定排序方向,True表示升序排序,False表示降序排序返回排序后的列表对象4.2.6集合元素排序86列表对象=sorted(iterable[,key=key_function,reverse=reverse_flag])sorted()做集合元素排序4.2.6集合元素排序86fruits={'orange','apple','mango'}result=sorted(fruits)#排序结果以列表对象返回print(result)#打印:['apple','mango','orange']示例4-34利用列表的sort()方法排序4.2.6集合元素排序86fruits={'orange','apple','mango'}fruits_list=list(fruits)#转换成列表对象fruits_list.sort()#利用列表对象的sort()方法排序print(fruits_list)#打印:['apple','mango','orange']示例4-35什么是数据容器01020403序列集合字典目

录字典04目

录什么是数据容器0102序列03集合字典的特点字典的创建字典的使用字典(dict)存储键值对:key:value键唯一,可以是不可变数据类型或可哈希数据值部分可以重复,可以是任何数据类型4.3字典88{}或dict()4.3.1创建字典88#创建空字典empty={}fruits=dict()#创建有初始值的字典counter={'right':4,'wrong':2}emotions=dict([(0,'anger'),(1,'sad'),(2,'happiness')])示例4-36以键作为索引,引用对应值部分4.3.2访问字典元素88counter={'right':4,'wrong':2}print(counter['right'])#打印结果:4counter['right']=0#->{'right':0,'wrong':2}counter['right']+=1#->{'right':1,'wrong':2}示例4-37字典对象[key]为避免“键不存在”的错误,可先检查键是否存在,再获取值4.3.2访问字典元素89counter={'right':4,'wrong':2}if'other'incounter:value=counter['other']示例4-38new_key:字典中没有的键init_value:初始值4.3.3增加字典元素89counter={'right':4,'wrong':2}counter['help']=0print(counter)#打印结果:{'right':4,'wrong':2,'help':0}示例4-39字典对象[new_key]=init_valuepop():删除指定的键值对,并返回被删除的值key:要删除的键default:可选,指定当键不存在时返回的默认值,若未提供default参数,当键不存在时,pop()方法会报错被删除键值对的值部分会返回,可以存放在变量中以备后续使用4.3.4删除字典元素89变量=字典对象.pop(key[,default])4.3.4删除字典元素89counter={'right':4,'wrong':2,'help':0}pop_value=counter.pop('help')print(pop_value)#打印结果:0print(counter)#打印结果:{'right':4,'wrong':2}pop_value=counter.pop('other','Unknown')print(pop_value)#打印结果:Unknownprint(counter)#打印结果:{'right':4,'wrong':2}示例4-40遍历键4.3.5遍历字典90counter={'right':4,'wrong':2}forkincounter:print(k,counter[k])示例4-41for循环变量in字典对象:#代码块遍历值4.3.5遍历字典90counter={'right':4,'wrong':2}forvincounter.values():#遍历对象:[4,2]print(v)示例4-42for循环变量in字典对象.values():#代码块遍历键值对4.3.5遍历字典90counter={'right':4,'wrong':2}#遍历对象:[('right',4),('wrong',2)]fork,vincounter.items():print(k,v)示例4-43for循环变量1,循环变量2in字典对象.items():#代码块使用sorted()排序4.3.6字典元素排序90emotions={0:'neutral',-1:'sad',1:'happiness'}key_list=sorted(emotions)print(key_list)#打印结果:[-1,0,1]emotions={0:'neutral',-1:'sad',1:'happiness'}val_list=sorted(emotions.values())print(val_list)#打印结果:['happiness','neutral','sad']示例4-44、45本章结束Python程序设计第5章Python自定义函数学习目标识记函数/lambda表达式语法理解函数要素掌握函数的使用知识目标能够根据需求正确编写函数能够使用map()等高级函数简化代码能力目标专业精神与责任开源文化与版权意识情感态度与价值观函数定义与调用01020403函数返回值与参数变量作用域高阶函数目

录函数定义与调用01020403函数返回值与参数变量作用域高阶函数目

录函数概述函数定义函数调用函数:封装了特定任务实现的代码块内置函数标准库函数第三方库函数自定义函数函数代码非调用不执行减少重复代码,避免代码冗余提高代码的可读性和可维护性代码更加模块化,便于组织和维护5.1函数概述985.2函数定义与调用99def函数名([参数列表]):#函数体[return返回值]def:定义函数的关键字函数名:遵循标识符的命名规则([参数列表]):代表函数必须从外部得到的数据,不需要外部数据则小括号内留空冒号:表示下一行开始进入函数体函数体:实现目标功能的语句块,需要缩进return:返回语句,可以带返回值,也可以不带函数模拟切水果机器(定义部分)5.2函数定义与调用100deffruit_cutter(fruit):print(f'开始切{fruit}')pieces=list(fruit)returnpieces示例5-1def函数名([参数列表]):#函数体[return返回值]没有返回值的函数直接调用有返回值的函数可将返回值赋值给其他变量5.2函数定义与调用100函数名([实际参数])变量=函数名([实际参数])函数模拟切水果机器(调用部分)5.2函数定义与调用100deffruit_cutter(fruit):print(f'开始切{fruit}')pieces=list(fruit)returnpiecesfruit_pieces=fruit_cutter('apple')print(fruit_pieces)#['a','p','p','l','e']示例5-1函数定义与调用01020403函数返回值与参数变量作用域高阶函数目

录函数返回值与参数020403变量作用域高阶函数目

录函数定义与调用01函数返回值函数参数返回值是函数内部需要传递到函数外部的数据计算结果:面积计算、利息计算、三角函数状态信息:数据是否保存成功、数据是否合法数据加工结果:排序结果、数据检索结果返回值使用return语句返回给调用者Python函数返回值形式None单一值多个值5.3函数的返回值100返回None值没有return语句,函数体执行完毕返回时遇到return语句但return之后没有数据时5.3函数的返回值100defsay_hello(name):

print(f'Hello,{name}!')ret_val=say_hello('张三')print(ret_val)#输出结果:None示例5-2返回None值没有return语句,函数体执行完毕返回时遇到return语句但return之后没有数据时5.3函数的返回值101defsay_hello(name):print(f'Hello,{name}!')ret_val=say_hello('张三')print(ret_val)#打印结果:None示例5-2defsave(name,age):ifnameisNoneorname=='':print(f'名字({name})不合法')returnifageisNoneorage<0:print(f'年龄({age}不合法)')returnprint('保存完毕!')ret_val=save('',18)print(ret_val)#打印结果:None示例5-3返回单一值(一个return)5.3函数的返回值101defsummary(a,b):returna+bret_val=summary(5,10)print(ret_val)示例5-4返回单一值(多个return)5.3函数的返回值101defto_level(score):ifscore>=90:return'优'elifscore>=80:return'良'elifscore>=70:return'中'elifscore>=60:return'合格'else:return'不合格'示例5-5调用语句:ret_val=to_level(85)print(ret_val)返回多个值:多个数据被函数组合成元组返回5.3函数的返回值101deftop_1(data_list):max_val=max(data_list)idx=data_list.index(max_val)returnmax_val,idxret_val=top_1([1,19,4,-6,15,7])print(ret_val)#打印结果:(19,1)ret1,ret2=top_1([1,19,4,-6,15,7])print(ret1,ret2)#打印结果:191示例5-6参数传递方式决定函数如何接收外部数据位置参数默认参数关键字参数变长参数不可变实参和可变实参5.4参数传递103位置参数:调用函数时,必须按照函数定义中形式参数的顺序,提供实际参数,不能随意改变5.4.1位置参数103defrectangular_perimeter(height,width):return(height+width)*2ret=rectangular_perimeter(3,2)print(ret)打印结果:10示例5-7默认参数:函数定义中可以为某些形参提供默认值,调用函数时如果没有为这些参数提供实参,函数将自动传入定义中指定的默认值5.4.2默认参数104defsay_hello(name='Python'):print(f'Hello,{name}!')say_hello() #打印结果:Hello,Python!say_hello('张三') #打印结果:Hello,张三!示例5-8关键字参数:调用函数时通过“形参名=值”的语法指定参数的值,不必依赖定义中形参的位置顺序5.4.3关键字参数104definfo(name,age,career):print(f'{name}今年{age}岁,职业为{career}')#打印结果:张三今年28岁,职业为飞行员info(name='张三',career='飞行员',age=28)示例5-9变长参数:允许函数接收不定数量的实参*形参名:函数内部将该参数做元组使用调用时依次传入实参,逗号隔开5.4.4变长参数104definfo(*person):print(f'{person[0]}今年{person[1]}岁,职业为{person[2]}')#传递的实参:('张三',28,'飞行员')info('张三',28,'飞行员')示例5-10变长参数:允许函数接收不定数量的实参**形参名:函数内部将该参数做字典使用调用时使用关键字参数传参5.4.4变长参数105definfo(**person):forkinperson:print(k,person[k])#传递的实参:{name:'张三',age:28,career:'飞行员'}info(name='张三',age=28,career='飞行员')示例5-11变长参数使用要点从函数定义中的参数列表看不出具体参数实现方和调用方应协商好参数的具体定义必要情况下提供相应的接口描述5.4.4变长参数105不可变实参:函数内部对形参的修改不会影响实参5.4.5不可变实参与可变实参105defchange_value(a,b):a=bname='张三'change_value(name,'李四')print(name)#打印结果:张三示例5-12可变实参:函数内部对形参的修改会反映到实参5.4.5不可变实参与可变实参105defchange_value(a,b):a[0]=binfo=['张三',28,'飞行员']change_value(info,'李四')print(info)#打印结果:['李四',28,'飞行员']示例5-13函数定义与调用01020403函数返回值与参数变量作用域高阶函数目

录变量作用域0304高阶函数目

录函数定义与调用0102函数返回值与参数全局变量局部变量global关键字变量作用域:变量能够被使用的范围全局变量局部变量5.5变量作用域108全局变量:定义在源文件中,处于函数、类定义之外的变量在整个程序运行期间都存在程序的任何位置都可以读取和修改全局变量5.5.1全局变量108a=10 #定义全局变量ab=5 #定义全局变量bdefsummary(x,y):returnx+yprint(summary(a,b))#将a和b用作实参b+=1#修改变量b示例5-14局部变量:函数内部定义的变量函数被调用时创建,函数执行期间存在只能在该函数内部使用5.5.2局部变量108defdemo():x=2#定义局部变量x

y=4#定义局部变量yprint(x,y)demo()

#打印结果:24print(x)

#报错:NameError:name'x'isnotdefined示例5-15对于一个变量,当函数内部仅读取它时,认为该变量是全局变量5.5.3global关键字109a=10#定义全局变量adefdemo1():b=a+1#仅读取a的值,在全局域中寻找aprint(a,b)demo1()#打印结果:1011示例5-16对于一个变量,当函数内部对它赋值时,认为该变量是局部变量5.5.3global关键字109a=10#定义全局变量adefdemo2():a=20#定义局部变量a,和全局变量a同名,函数内部将覆盖全局变量ademo2()print(a)#打印结果:10示例5-17对于一个变量,当函数内部对它赋值时,认为该变量是局部变量5.5.3global关键字109a=10#定义全局变量adefdemo3():print(a)a=30#a为局部变量,但上一行先使用了ademo3()#报错示例5-17在函数内部修改全局变量的值,需在函数内部用global先行声明5.5.3global关键字109a=10#定义全局变量adefdemo4():globala#声明函数内部使用全局变量aa=20demo4()print(a)#打印结果:20示例5-18global全局变量名函数定义与调用01020403函数返回值与参数变量作用域高阶函数目

录高阶函数04目

录函数定义与调用0102函数返回值与参数03变量作用域lambda表达式map()和filter()闭包高阶函数:能够接受其他函数作为参数,或者返回一个函数作为结果的函数5.6高阶函数110lambda表达式:一种简洁的函数定义方式,定义一个简单的、单表达式的匿名函数参数列表:可以是任意数量的参数,多个参数之间用逗号隔开表达式:通常是一个较为简单的单一表达式,其值即为函数的返回值5.6.1lambda表达式lambda参数列表:表达式将lambda表达式定义的匿名函数存放在变量中,以变量名作为函数名调用5.6.1lambda表达式110f=lambdax,y,z:x+y+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论