项目三 数据结构与函数_第1页
项目三 数据结构与函数_第2页
项目三 数据结构与函数_第3页
项目三 数据结构与函数_第4页
项目三 数据结构与函数_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

Python程序基础与大数据分析所有教学资源,我们给;所有复杂操作,我们做;图书附赠,永久免费,只为老师用书更方便课件教案微课扫码题库建课互评考试平台

学习工具目录Python数据分析概述1.Python编程基础2.数据结构与函数3.NumPy数值计算4.Pandas基础5.Pandas数据处理与分析6.Matplotlib数据可视化7.财务数据分析8.股票数据量化分析9.商品数据分析10.客户画像分析11.采购质量管理分析12.信用卡欺诈交易分析13.基础篇实战篇3.数据结构与函数请同学们思考一下,利用Python实现复杂、强大的功能,除了要用到基本数据类型,还需要用到哪些Python的功能呢?项目目标知识目标认识Python数据结构。掌握列表、元组、字典和集合的创建与基本操作方法。掌握函数的定义和调用方法。掌握函数参数和返回值的使用方法。了解匿名函数。项目目标能力目标能够根据实际情况使用合适的数据结构解决问题。能够使用函数封装代码,实现模块化编程。素养目标锻炼逻辑思维能力,加强程序设计的严谨性。尝试使用不同的数据结构和函数解决同一问题,激发创新思维。项目准备全班学生以

3~5

人为一组进行分组,各组选出组长。组长组织组员扫码观看“Python中的数据结构和函数”视频,讨论并回答下列问题。问题1:Python中常用的数据结构有哪些?问题2:说一说你对函数的认识。Python中的数据结构和函数任务一存储并操作销售和管理费用数据3.数据结构与函数任务二实现数据运算任务描述请同学们思考一下,Python中常用的数据结构有哪些呢?一、列表列表(list)是写在方括号“[]”中、用逗号分隔开的元素序列,是Python中最具灵活性的有序序列,也是Python中使用最频繁的数据类型。长度可变;可任意嵌套;支持在原处修改;元素的数据类型可以各不相同:数值;字符串;列表(列表嵌套)。列表的特点列表一、列表1.创建列表使用方括号“[]”将以逗号分隔的列表元素括起来;使用list()函数将字符串、range对象等转换为列表。一、列表>1.创建列表【例3-1】

使用方括号“[]”创建列表。【参考程序】list1=[1,2,3] #创建列表list1print('list1=',list1) #输出list1list2=['A','B','C'] #创建列表list2print('list2=',list2) #输出list2list3=[list1,list2] #将list1和list2一起赋给list3print('list3=',list3) #输出list3【运行结果】例3-1程序运行结果一、列表>1.创建列表【例3-2】

使用list()函数创建列表。【参考程序】list1=list('Python') #将字符串转换为列表并赋给list1print('list1=',list1) #输出list1list2=list(range(5)) #将range对象转换为列表并赋给list2print('list2=',list2) #输出list2【运行结果】例3-2程序运行结果一、列表2.提取列表元素序列类型的数据结构都可以通过索引和切片操作对元素进行提取。列表索引:从0开始,以1为步长逐渐递增。列表切片:切片后返回一个包含提取元素的新列表。一、列表>2.提取列表元素格式:list[index]

#

通过索引提取列表元素

list[start:stop:step]

#

通过切片提取列表元素索引和切片提取列表元素:说明:list表示列表;index表示索引值;start表示列表切片起始索引;stop表示列表切片结束索引(不包含结束位本身);step表示每次提取元素的间隔。一、列表>2.提取列表元素【例3-3】

提取列表元素。【参考程序】number=[1,2,3,4,5] #创建列表numberprint(number[0]) #输出列表第1个元素print(number[1:3]) #输出列表第2个到第3个元素print(number[2:]) #输出列表从第3个开始的所有元素#输出列表从第2个开始到第4个结束且间隔为2的元素print(number[1:4:2])【运行结果】例3-3程序运行结果一、列表>3.添加元素append()extend()insert()向列表中添加元素的常用函数一、列表>3.添加元素格式:list.append(obj)在列表末尾添加新的元素,一次只能添加一个元素。说明:list表示列表;obj表示添加到列表末尾的元素。append()函数一、列表>3.添加元素【例3-4】

使用append()函数向列表中添加元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表account#使用append()函数向account末尾添加元素“长期应收款”account.append('长期应收款')print('更新后的列表:',account) #输出account【运行结果】例3-4程序运行结果一、列表>3.添加元素格式:list.extend(seq)在列表末尾添加新的序列,相当于列表与新的序列进行拼接(如果是两个列表,也可以通过加号“+”进行拼接)。说明:list表示列表;seq表示添加到列表末尾的序列。extend()函数一、列表>3.添加元素【例3-5】

使用extend()函数向列表中添加元素。【参考程序】account1=['库存现金','银行存款'] #创建列表account1print('原来的account1:',account1) #输出account1account2=['其他货币资金','应收票据'] #创建列表account2print('原来的account2:',account2) #输出account2account3=['应收账款','存货'] #创建列表account3print('原来的account3:',account3) #输出account3#使用extend()函数将account2添加到account1末尾account1.extend(account2)print('更新后的account1:',account1) #输出account1一、列表>3.添加元素【例3-5】

使用extend()函数向列表中添加元素。【参考程序】#使用append()函数将account3添加到account1末尾account1.append(account3)print('再次更新后的account1:',account1) #输出account1【运行结果】例3-5程序运行结果一、列表>3.添加元素extend()函数:将account2看作一个序列,将其与account1合并;使用它添加元素后,account1中包含4个元素。append()函数:将account3看作一个元素,整体添加到account1中;使用它添加元素后,account1中包含5个元素,其中第5个元素是一个列表。提示请同学们思考一下,append()和extend()函数向列表中添加元素有什么区别?一、列表>3.添加元素格式:list.insert(index,obj)将指定元素插入列表的指定位置,若插入位置超过列表尾端,则会插入列表末尾。说明:list表示列表;index表示插入位置;obj表示插入列表的元素。insert()函数一、列表>3.添加元素【例3-6】

使用insert()函数向列表中插入元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表account#使用insert()函数将元素“长期应收款”插入索引值为1的位置account.insert(1,'长期应收款')print('更新后的列表:',account) #输出account【运行结果】例3-6程序运行结果一、列表>4.删除元素del命令pop()remove()删除列表元素或整个列表的常用函数一、列表>4.删除元素格式:dellist[index]将指定位置的元素删除。说明:list表示列表;index表示预删除列表元素的索引值。del命令直接删除整个列表。格式:dellistlist表示列表;一、列表>4.删除元素【例3-7】

使用del命令删除列表中的元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表accountdelaccount[1] #使用del命令删除account中索引值为1的元素print('更新后的列表:',account) #输出account【运行结果】例3-7程序运行结果一、列表>4.删除元素格式:list.pop(index)将指定位置的元素删除,并返回该元素的值。说明:list表示列表;index表示预删除列表元素的索引值,默认为-1,表示删除列表中的最后一个元素。pop()函数一、列表>4.删除元素【例3-8】

使用pop()函数删除列表中的元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表account#使用pop()函数删除account中索引值为2的元素,返回值为“其他货币资金”account.pop(2)print('更新后的列表:',account) #输出account#使用pop()函数删除account中的最后一个元素,返回值为“应收账款”account.pop()print('再次更新后的列表:',account) #输出account【运行结果】一、列表>4.删除元素格式:list.remove(obj)删除列表中某个元素的第1个匹配项。说明:list表示列表;obj表示列表中预删除的元素。remove()函数一、列表>4.删除元素【例3-9】

使用remove()函数删除列表中的元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款','银行存款'] #创建列表account#使用remove()函数删除第1个“银行存款”account.remove('银行存款')print('更新后的列表:',account) #输出account【运行结果】例3-9程序运行结果一、列表>5.修改元素【例3-10】

修改列表中的元素。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表accountaccount[4]='存货' #使用索引方法修改元素print('更新后的列表:',account) #输出accountt【运行结果】例3-10程序运行结果通过索引直接赋值上述修改操作会直接作用在列表上。如果不希望直接作用于列表本身:使用copy()函数创建一个完全一样的列表副本。提示一、列表>5.修改元素【例3-11】

使用copy()函数创建列表副本,并修改副本。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表accountaccount1=account.copy() #创建account的副本account1account1[4]='存货' #使用索引方法修改元素print('更新后的account1:',account1) #输出account1print('未更新的account:',account) #输出account【运行结果】例3-11程序运行结果一、列表>6.查询元素位置查询指定元素:包含——返回第1次出现的位置;不包含——出现错误提示。index()函数【例3-12】

使用index()函数查询列表中指定元素的位置。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表account#输出“银行存款”在account中第1次出现的位置print('“银行存款”索引值为',account.index('银行存款'))【运行结果】例3-12程序运行结果一、列表>7.列表排序reverse()sort()sorted()对列表中元素进行排序的常用函数一、列表>7.列表排序格式:list.reverse()将列表中的元素反向存放。说明:list表示列表;reverse()函数一、列表>7.列表排序【例3-13】

使用reverse()函数将列表中的元素反向存放。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表accountaccount.reverse() #使用reverse()函数将列表中的元素反向存放print('更新后的列表:',account) #输出account【运行结果】例3-13程序运行结果一、列表>7.列表排序格式:list.sort(key=None,reverse=False)将列表中的元素进行排序。说明:list表示列表;key表示列表排序依据(如使用内置函数len()表示按元素长度排序),默认为None;reverse表示是否降序排序,如果为True,则表示将列表元素降序排序,如果为False,则表示将列表元素升序排序,默认为False。sort()函数一、列表>7.列表排序【例3-14】

使用sort()函数对列表中的元素进行排序。【参考程序】#创建数字列表numbernumber=[1,45,62,18,15,95,3,34,9,50,85]#使用sort()函数将number中的元素降序排序number.sort(reverse=True)print('更新后的列表:',number) #输出numberaccount=['库存现金','现银行存款','其他货币资金','票据','收账款','存货'] #创建账户列表account#使用sort()函数将account中的元素按长度升序排序account.sort(key=len)print('更新后的列表:',account) #输出account【运行结果】一、列表>7.列表排序格式:sorted(list,key=None,reverse=False)sorted()函数会返回一个排序后的新列表,并不会对原列表进行任何修改。说明:list表示列表;key表示列表排序依据(如使用内置函数len()表示按元素长度排序),默认为None;reverse表示是否降序排序,如果为True,则表示将列表元素降序排序,如果为False,则表示将列表元素升序排序,默认为False。sorted()函数一、列表>7.列表排序【例3-15】

使用sorted()函数对列表中的元素进行排序。【参考程序】#创建列表number1number1=[1,45,62,18,15,95,3,34,9,50,85]#将number1中的元素升序排序后赋给number2number2=sorted(number1)print('number2:',number2) #输出number2print('number1:',number1) #输出number1【运行结果】例3-15程序运行结果一、列表>8.统计次数格式:list.count(obj)统计列表中指定元素出现的次数。说明:list表示列表;obj表示预统计的元素。count()函数一、列表>7.列表排序【例3-16】

使用count()函数统计列表中指定元素出现的次数。【参考程序】#创建列表lettersletters=['a','b','c','d','a','b','c','a','c']#输出letters中元素c出现的次数print('c出现的次数为:',letters.count('c'))#输出letters中元素a出现的次数(%d表示将对象格式化为十进制整数)print('列表中一共有%d个a'%letters.count('a'))【运行结果】例3-16程序运行结果二、元组元组(tuple)与列表类似,是写在圆括号“()”中、用逗号分隔开的元素组合。元素的数据类型可以各不相同。元素不能修改;元组的特点元组二、元组1.创建元组使用圆括号“()”将以逗号分隔的元组元素括起来创建(也可以省略圆括号,直接使用逗号分隔元组元素);使用tuple()函数将序列转换为元组。二、元组>1.创建元组【例3-17】

使用圆括号“()”创建元组。【参考程序】x=(1,2,3,'a','b') #创建元组xprint('x=',x) #输出xy=1,2,3,'a','b' #创建元组yprint('y=',y) #输出y#如果要定义一个空元组,可以使用没有元素的圆括号表示z=() #创建空元组zprint('z=',z) #输出za=(1,) #创建单元素元组aprint('a=',a) #输出a【运行结果】

例3-17程序运行结果二、元组>1.创建元组定义只有一个元素的元组时,必须在元素后面添加一个“,”。圆括号:既可以表示元组;也可以表示数学公式中的小括号。提示实例x=(1)#直接赋值print(x)#输出x

的值为

1,而不是元组。如果没有逗号将会产生歧义二、元组>1.创建元组【例3-18】

使用tuple()函数创建元组。【参考程序】account=['库存现金','银行存款','其他货币资金','应收票据','应收账款'] #创建列表accountx=tuple(account) #将列表account转换为元组并赋给xprint('x=',x) #输出xy=tuple('Python') #将字符串转换为元组并赋给yprint('y=',y) #输出y【运行结果】

例3-18程序运行结果二、元组>2.提取元组元素【例3-19】

提取元组元素。【参考程序】x=(1,2,3,4,5) #创建元组xprint(x[0]) #输出元组第1个元素print(x[1:3]) #输出元组第2个到第3个元素print(x[2:]) #输出元组从第3个开始的所有元素#输出元组从第2个开始到第4个结束且间隔为2的元素print(x[1:4:2])【运行结果】

例3-19程序运行结果与列表类似,元组元素也可以使用索引和切片提取。二、元组>3.元组其他操作count()index()sorted()对元组进行操作的函数二、元组>2.提取元组元素【例3-20】

对元组进行统计次数、获取长度和排序。【参考程序】x=(1,2,3,1,4,1,5) #创建元组x#输出元组中元素“1”出现的次数print('元组中元素“1”出现的次数:',x.count(1))#输出元组中元素“1”第1次出现的位置print('元组中元素“1”第1次出现的位置:',x.index(1))#len()函数用于获取元组的长度print('元组的长度:',len(x)) #输出元组的长度#将元组x中的元素升序排序后赋给yy=sorted(x) print('y=',y) #输出y【运行结果】

例3-20程序运行结果三、字典字典(dictionary)是无序的键值对集合,每个键值对称为一个元素。键(key):不可变数据类型:数值;字符串;元组。同一个字典中,必须是唯一的。值(value):任意数据类型。字典的组成字典三、字典1.创建字典使用花括号“{}”将以逗号分隔的字典元素(键值对)括起来创建;使用dict()函数将键值对序列或关键字参数转换为字典。三、字典>1.创建字典【例3-21】

提使用花括号“{}”和dict()函数创建字典。【参考程序】my_dict1={'库存现金':100000,'银行存款':120000,'其他货币资金':140000}#直接创建字典print('my_dict1=',my_dict1) #输出my_dict1#通过键值对序列创建字典my_dict2=dict([('库存现金',200000),('银行存款',220000),('其他货币资金',240000)])print('my_dict2=',my_dict2) #输出my_dict2#通过关键字参数创建字典my_dict3=dict(库存现金=300000,银行存款=320000,其他货币资金=340000) print('my_dict3=',my_dict3) #输出my_dict3【运行结果】三、字典>2.提取字典元素格式:dict[key]与列表等序列不同,字典不支持索引,也不支持切片。字典元素的提取:主要利用映射关系实现。说明:dict表示字典;key表示预提取元素的键。三、字典>2.提取字典元素【例3-22】

字典元素的提取。【参考程序】#创建字典my_dictmy_dict={'库存现金':100000,'银行存款':1200000,'其他货币资金':200000}#提取“库存现金”的值并输出print("my_dict['库存现金']=",my_dict['库存现金'])【运行结果】例3-22程序运行结果三、字典>3.添加和修改元素在Python中,当按照指定键为字典元素赋值时,若该键在字典中:不存在:表示向字典中添加新的元素存在:表示修改字典中该键对应的值。三、字典>3.添加和修改元素【例3-23】

添加和修改字典中的元素。【参考程序】#创建字典my_dictmy_dict={'库存现金':100000,'银行存款':1200000,'其他货币资金':200000} my_dict['库存现金']=200000 #修改“库存现金”的值print('更新后的字典:',my_dict) #输出my_dictmy_dict['存货']=300000 #添加元素“'存货':300000”print('再次更新后的字典:',my_dict) #输出my_dict【运行结果】例3-23程序运行结果三、字典>4.删除元素del命令pop()clear()删除字典元素或整个字典的常用函数三、字典>4.删除元素格式:deldict[key]根据键删除字典中的元素。说明:dict表示字典;key表示预删除字典元素的键。del命令三、字典>4.删除元素>del命令【例3-24】

使用del命令删除字典中的元素。【参考程序】my_dict={'库存现金':100000,'银行存款':1200000, '其他货币资金':200000}#创建字典my_dictdelmy_dict['库存现金'] #删除“库存现金”键对应的元素print('更新后的字典:',my_dict) #输出my_dict【运行结果】与列表类似,使用del命令也可以直接删除整个字典。提示三、字典>4.删除元素格式:dict.pop(key)删除指定的键值对,并返回该键的值。说明:dict表示字典;key表示预删除字典元素的键。pop()函数三、字典>4.删除元素>pop()函数【例3-25】

使用pop()函数删除字典中的元素。【参考程序】my_dict={'库存现金':100000,'银行存款':1200000,'其他货币资金':200000}#创建字典my_dictmy_dict.pop('库存现金') #删除“库存现金”键对应的元素print('更新后的字典:',my_dict) #输出my_dict【运行结果】例3-25程序运行结果三、字典>4.删除元素格式:dict.clear()删除字典中的所有元素,返回一个空字典“{}”。说明:dict表示字典。clear()函数三、字典>5.更新字典格式:dict.update(dict1)更新字典,将新字典的键值对一次性全部添加到当前字典中,如果两个字典中存在相同的键,则以新字典中的值更新当前字典。说明:dict表示字典;dict1表示新字典。update()函数一、列表>5.更新字典【例3-26】

使用update()函数更新字典中的元素。【参考程序】#创建字典my_dictmy_dict={'库存现金':100000,'银行存款':1200000,'其他货币资金':200000} #修改“其他货币资金”的值,同时添加新元素“'存货':300000”my_dict.update({'其他货币资金':300000,'存货':300000})print('更新后的字典:',my_dict) #输出my_dict【运行结果】例3-26程序运行结果三、字典>6.遍历字典keys()函数values()函数items()函数遍历字典方法获取:字典的键;返回:视图对象。获取:字典的值;返回:视图对象。获取:字典的键值对;返回:视图对象。三、字典>6.遍历字典【例3-27】

字典的遍历。【参考程序】my_dict={'库存现金':100000,'银行存款':1200000,'其他货币资金':200000}#创建字典my_dictprint(my_dict.keys()) #输出字典的键print(my_dict.values()) #输出字典的值print(my_dict.items()) #输出字典的键值对【运行结果】例3-27程序运行结果四、集合集合(set)将各不相同的不可变数据无序地集中起来的容器。常用来实现元素去重操作。集合的元素:不可重复;属于不可变数据类型;元素之间没有顺序。集合的特点集合四、集合1.创建集合使用花括号“{}”将以逗号分隔的集合元素括起来创建;使用set()函数将序列转换为集合。四、集合>1.创建集合【例3-28】

使用花括号“{}”创建集合。【参考程序】#创建集合ss={'销售费用','管理费用','管理费用',1000,2000,1000}print('s=',s) #输出s【运行结果】例3-28程序运行结果由于集合元素是无序的,所以集合的输出结果与定义顺序可能不一致。提示四、集合>1.创建集合【例3-29】

使用set()函数创建集合。【参考程序】x=set([1,2,3,4,5]) #将列表转换为集合并赋给xprint('x=',x) #输出xy=set('Python') #将字符串转换为集合并赋给yprint('y=',y) #输出yz=set() #创建空集合并赋给zprint('z=',z) #输出z【运行结果】创建一个空集合必须用set()函数而不是“{}”,因为“{}”用于创建一个空字典。提示四、集合>2.添加和删除元素函

数说

明S.add(x)如果集合中不存在x,则将该元素添加到集合中S.remove(x)如果x在集合中,则删除该元素,否则抛出异常S.pop()随机删除并返回集合中的一个元素,如果集合为空则抛出异常S.clear()清空集合S.update(T)合并集合T和集合S中的元素,并自动去除重复元素添加和删除集合元素常用的函数四、集合>2.添加和删除元素【例3-30】

添加和删除集合中的元素。【参考程序】s={'销售费用','管理费用','管理费用',1000,2000,1000} #创建集合ss.add('应收账款') #添加元素“应收账款”print('s=',s) #输出ss.remove(1000) #删除元素“1000”print('s=',s) #输出ss.clear() #清空集合print('s=',s) #输出s【运行结果】操作符用

法说

明|S|T并集,返回一个新集合,包括集合S和集合T中的所有元素&S&T交集,返回一个新集合,包括同时在集合S和集合T中的元素-S-T差集,返回一个新集合,包括在集合S中但不在集合T中的元素^S^T对称差集,返回一个新集合,包括集合S和集合T中不重复的元素,也就是并集减去交集的部分四、集合>3.集合运算集合运算是指对集合进行并集、交集、差集、对称差集等数学运算。集合运算的操作符四、集合>3.集合运算【例3-31】

集合运算的应用。【参考程序】s={1,2,3,4,5} #创建集合st={4,5,6,7,8} #创建集合tprint('s|t:',s|t) #输出两个集合的并集print('s&t:',s&t) #输出两个集合的交集【运行结果】例3-31程序运行结果任务实施使用字典存储并操作销售和管理费用数据。创建两个字典dict1、dict2(结构见下图),并执行以下操作。请同学们思考一下,如何使用字典存储并操作数据?(1)提取dict1中“销售费用”对应的值。(2)将dict2中“2月”对应的值修改为“0.6”。(3)向dict1中添加元素“'财务费用':10000”。(4)将dict1中“管理费用”的值与dict2中“2月”的值相乘。(5)删除dict1中的元素“财务费用”。大家动手试试吧。任务实施【参考程序】dict1={'销售费用':12000,'管理费用':15000}#创建字典dict1dict2={'1月':0.4,'2月':0.5} #创建字典dict2print('(1)',dict1['销售费用']) #输出“销售费用”的值dict2['2月']=0.6 #修改“2月”的值print('(2)',dict2) #输出dict2dict1['财务费用']=10000 #添加元素“'财务费用':10000”print('(3)',dict1) #输出dict1#dict1中“管理费用”的值与dict2中“2月”的值相乘,并将其结果赋给ss=dict1['管理费用']*dict2['2月']任务实施print('(4)',s) #输出sdeldict1['财务费用'] #删除元素“财务费用”print('(5)',dict1) #输出dict1【运行结果】例3-33存储并操作销售和管理费用数据结果任务一存储并操作销售和管理费用数据3.数据结构与函数任务二实现数据运算任务描述函数是可重复使用的,用于实现单一或相关联功能的代码段。Python中常用的函数有哪些呢?一、函数的定义格式:def函数名(形式参数列表):

函数体自定义函数:说明:def是Python的关键字,用于定义函数;函数名是用户为函数起的名字,用于唯一标识一个函数;形式参数(形参):定义函数时声明的参数,用于接收调用函数时传递进来的数据,可以是零个、一个或多个,当声明多个参数时各参数之间用逗号隔开;函数体是每次调用函数执行的代码块。deflearn():

#定义函数

print('学习')#函数体实例二、函数的调用格式:函数名(实际参数列表)调用函数:说明:实际参数(实参)表示传递给函数的具体值。二、函数的调用【例3-32】

函数调用的应用。【参考程序】deflearn(): #定义learn()函数print('学习')learn() #调用learn()函数【运行结果】例3-32程序运行结果函数只有在调用时才执行;当调用函数时,当前执行暂停,转去执行函数体。执行完毕后,重新回到调用函数的位置,继续执行之后的代码。提示三、函数的参数函数的参数Python中函数的参数位置参数关键字参数默认参数可变参数三、函数的参数>1.位置参数位置参数(最常用)根据函数定义时形参的位置来传递实参;实参与形参的数量必须相同;实参与形参顺序不可以调换。实例range()函数的3个参数:startstopstep需要按照顺序传入三、函数的参数>1.位置参数【例3-33】

位置参数的应用。【参考程序】a=list(range(0,10,2)) #为range()函数正确传参并创建列表b=list(range(10,0,2)) #为range()函数错误传参并创建列表print('a=',a) #输出aprint('b=',b) #输出b【运行结果】例3-33程序运行结果三、函数的参数>2.关键字参数关键字参数在函数调用时按照参数名传递参数值。可以不按照形参的位置传递实参;Python解释器会自动按照参数名匹配参数值。三、函数的参数>2.关键字参数【例3-34】

关键字参数的应用。【参考程序】#定义interest()函数,用于计算利息definterest(money,day,interest_rate):income=0#计算利息,利息=本金

×

年利率

×

存款天数/365income=money*interest_rate*day/365print('利息:',income) #输出income#调用interest()函数并传入关键字参数interest(money=5000,day=7,interest_rate=0.03)interest(day=7,money=5000,interest_rate=0.03)例3-34程序运行结果【运行结果】三、函数的参数>3.默认参数默认参数在定义函数时为参数指定默认值的参数形式。定义带有默认参数函数:在调用函数时,默认参数的值:不传值——将会直接使用函数定义时设置的默认值;传值——将通过显式赋值替换其默认值。格式:def函数名(……,形参名=默认值):

函数体说明:默认参数必须在函数所有非默认参数之后,调用函数时同理。三、函数的参数>3.默认参数【例3-35】

默认参数的应用。【参考程序】#定义interest()函数,用于计算利息definterest(money,day,interest_rate=0.03):income=0#计算利息,利息=本金

×

年利率

×

存款天数/365income=money*interest_rate*day/365print('利息:',income) #输出incomeinterest(5000,1) #调用interest()函数例3-35程序运行结果【运行结果】三、函数的参数>4.可变参数可变参数在定义函数时,当不确定调用时会传递多少个参数(或者不传参数)时,可在函数中使用“*”或“**”符号表示。格式:def函数名(形参列表,*args,**kwargs):

函数体说明:“*args”和“**kwargs”为可变参数;“*”表示接收任意多个实参并将其放入一个元组中;“**”表示接收多个类似于关键字参数的实参并将其放入一个字典中。三、函数的参数>4.可变参数【例3-36】

可变参数的应用。【参考程序】#定义exp()函数,用于显示函数参数defexp(x,y,*args,**kwargs):print('x:',x)print('y:',y)print('args:',args)print('kwargs:',kwargs)#调用exp()函数exp(2,3,55,24,'abc',a='c',b=3) 例3-36程序运行结果【运行结果】四、函数的返回值函数可以处理数据,并返回一个或一组值

温馨提示

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

评论

0/150

提交评论