写在前面的话:码字不易,点个赞关注一下作者再走吧〔呲牙〕 1。传递列表 将列表传递给函数后,函数就能直接访问其内容 假设有一个用户列表,要问候其中的每位用户defgreetusers(names):向列表中的每位用户都发出简单的问候fornameinnames:msghello,name!print(msg)usernames〔daming,lingling,nini〕定义一个用户列表greetusers(usernames)调用greetusers,并将这个列表传递给他hello,daming!hello,lingling!hello,nini!2。在函数中修改列表 将列表传递给函数后,函数就可对其进行修改,在函数中对这个列表所做的任何修改都是永久性的 一家为用户提交的设计制作3D打印模型的公司,需要打印的设计存储在一个列表中,打印后转移到另一个列表中。创建一个列表,其中包含一些要打印的设计unprinteddesigns〔apple,banana,pear〕completedmodels〔〕模拟打印每个设计,直到没有未打印的设计为止打印每个设计后,都将其转移到列表completedmodels中whileunprinteddesigns:currentdesignunprinteddesigns。pop()模拟根据设计制作3D打印模型的过程print(printingmodel:currentdesign)completedmodels。append(currentdesign)显示打印好的所有模型print(thefollowingmodelshavebeenprinted:)forcompletedmodelincompletedmodels:print(completedmodel)printingmodel:pearprintingmodel:bananaprintingmodel:applethefollowingmodelshavebeenprinted:pearbananaapple改为函数模式,编写两个函数defprintmodels(unprintedmodels,completedmodels):第一个函数,负责处理打印设计的工作模拟打印每个设计,直到没有未打印的设计为止打印每个设计后,都将其转移到列表completedmodels中whileunprinteddesigns:currentdesignunprinteddesigns。pop()模拟根据设计制作3D打印模型的过程print(printingmodel:currentdesign)completedmodels。append(currentdesign)defshowcompletedmodels(completedmodels):概述打印了哪些设计显示打印好的所有模型print(thefollowingmodelshavebeenprinted:)forcompletedmodelincompletedmodels:print(completedmodel)unprinteddesigns〔apple,banana,pear〕completedmodels〔〕printmodels(unprinteddesigns,completedmodels)showcompletedmodels(completedmodels)printingmodel:pearprintingmodel:bananaprintingmodel:applethefollowingmodelshavebeenprinted:pearbananaapple3。禁止函数修改列表 有时候需要禁止函数修改列表,为解决这个问题,可想向函数传递列表的副本而不是元件;这样函数所做的任何修改都只影响副本,不影响元件切片法〔:〕代表创建列表的副本printmodels(unprinteddesigns〔:〕,completedmodels)4。传递任何数量是实参 有时候,预先布置的函数需要接受多少个实参,python允许函数从调用语句中手机任意数量的实参 一个制作披萨的寒素,它需要接受很多配料,但无法确定顾客要多少种配料,下面函数只有一个形参toppings,不管调用语句提供了多少实参,这个形参都将他们统统收入囊中defmakepizza(toppings):打印顾客点的所有配料print(toppings)makepizza(mogu)makepizza(caomei,xihongshi,jiangliao)(mogu,)(caomei,xihongshi,jiangliao)将print语句替换为一个循环defmakepizza(toppings):打印顾客点的所有配料print(makingapizzawiththefollowingtoppings:)fortoppingintoppings:print(topping)makepizza(mogu)makepizza(caomei,xihongshi,jiangliao)makingapizzawiththefollowingtoppings:mogumakingapizzawiththefollowingtoppings:caomeixihongshijiangliao5。结合使用位置实参和任意数量实参 如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后 python先匹配位置实参和关键字实参,再将余下的实参收集到最后一个形参中 如果前边的函数还需要一个表示披萨尺寸的实参,必须将该形参放在toppings的前面defmakepizza(size,toppings):打印顾客点的所有配料print(makingastr(size)inchpizzawiththefollowingtoppings:)fortoppingintoppings:print(topping)makepizza(16,mogu)makepizza(12,caomei,xihongshi,jiangliao)makinga16inchpizzawiththefollowingtoppings:mogumakinga12inchpizzawiththefollowingtoppings:caomeixihongshijiangliao6。使用任意数量的关键字实参 有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是射门杨的信息,再这种情况下,可将函数编写成能够接受任意数量的键值对,调用语句提供了多少就接受多少 创建用户简介:你知道你将收到有关用户的信息,但不确定会是什么样的信息,在下面示例中,buildprofile()接受名和姓,同时还接受任意数量的关键字实参defbuildprofile(first,last,userinfo):创建一个字典,其中包含我们知道的有关用户的一切profile{}profile〔firstname〕firstprofile〔lastname〕lastforkey,valueinuserinfo。items():profile〔key〕valuereturnprofileuserprofilebuildprofile(daming,zhang,locationbeijing,fieldbailing)print(userprofile){firstname:daming,lastname:zhang,location:beijing,field:bailing}7。将函数存储在模块中1。导入整个模块要让函数是可导入的,得先创建模块,模块是拓展名为。py的文件创建一个包含函数makepizza的模块defmakepizza(size,toppings):打印顾客点的所有配料print(makingastr(size)inchpizzawiththefollowingtoppings:)fortoppingintoppings:print(topping)在pizza。py所在的目录中创建另一个名为makingpizza。py的文件,这个文件导入刚创建的模块,使用import语句importpizzapizza。makepizza(16,mogu)pizza。makepizza(12,caomei,xihongshi,jiangliao)makinga16inchpizzawiththefollowingtoppings:mogumakinga12inchpizzawiththefollowingtoppings:caomeixihongshijiangliao导入特定的函数还可以导入模块中特定的函数,语法如下:frommodulenameimportfunctionname通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数frommodulenameimportfunction0,function1,function2对于前面的makingpizza。py示例,如果只想导入使用的函数frompizzaimportmakepizzapizza。makepizza(16,mogu)pizza。makepizza(12,caomei,xihongshi,jiangliao)makinga16inchpizzawiththefollowingtoppings:mogumakinga12inchpizzawiththefollowingtoppings:caomeixihongshijiangliao使用as函数指定别名可以将导入的函数名称改为自己喜欢的名字frompizzaimportmakepizzaasmpmp(16,mogu)mp(12,caomei,xihongshi,jiangliao)通用语法frommodulenameimportfunctionnameasfn使用as给模块指定别名importpizzaaspp。makepizza(16,mogu)p。makepizza(12,caomei,xihongshi,jiangliao)通用语法importmodulenameasmn导入模块中的所有函数:使用星号frompizzaimportmakepizza(16,mogu)makepizza(12,caomei,xihongshi,jiangliao)通用语法frommodulenameimport