python(16)函数(3)
写在前面的话:码字不易,点个赞关注一下作者再走吧[呲牙]
==================================1.传递列表
将列表传递给函数后,函数就能直接访问其内容
假设有一个用户列表,要问候其中的每位用户 def greet_users(names): """向列表中的每位用户都发出简单的问候""" for name in names: msg = "hello, " + name +"!" print(msg) usernames = ["da ming", "ling ling", "ni ni"]#定义一个用户列表 greet_users(usernames)#调用greet_users,并将这个列表传递给他 hello, da ming! hello, ling ling! hello, ni ni! 2.在函数中修改列表
将列表传递给函数后,函数就可对其进行修改,在函数中对这个列表所做的任何修改都是永久性的
一家为用户提交的设计制作3D打印模型的公司,需要打印的设计存储在一个列表中,打印后转移到另一个列表中。 #创建一个列表,其中包含一些要打印的设计 unprinted_designs = ["apple", "banana", "pear"] completed_models = [] #模拟打印每个设计,直到没有未打印的设计为止 #打印每个设计后,都将其转移到列表completed_models中 while unprinted_designs: current_design = unprinted_designs.pop() #模拟根据设计制作3D打印模型的过程 print("printing model : " + current_design) completed_models.append(current_design) #显示打印好的所有模型 print(" the following models have been printed: ") for completed_model in completed_models: print(completed_model) printing model : pear printing model : banana printing model : apple the following models have been printed: pear banana apple ============================================ #改为函数模式,编写两个函数 def print_models(unprinted_models, completed_models):#第一个函数,负责处理打印设计的工作 #模拟打印每个设计,直到没有未打印的设计为止 #打印每个设计后,都将其转移到列表completed_models中 while unprinted_designs: current_design = unprinted_designs.pop() #模拟根据设计制作3D打印模型的过程 print("printing model : " + current_design) completed_models.append(current_design) def show_completed_models(completed_models):#概述打印了哪些设计 #显示打印好的所有模型 print(" the following models have been printed: ") for completed_model in completed_models: print(completed_model) unprinted_designs = ["apple", "banana", "pear"] completed_models = [] print_models(unprinted_designs, completed_models) show_completed_models(completed_models) printing model : pear printing model : banana printing model : apple the following models have been printed: pear banana apple 3.禁止函数修改列表
有时候需要禁止函数修改列表,为解决这个问题,可想向函数传递列表的副本而不是元件;这样函数所做的任何修改都只影响副本,不影响元件 #切片法[:]代表创建列表的副本 print_models(unprinted_designs[:], completed_models) 4.传递任何数量是实参
有时候,预先布置的函数需要接受多少个实参,python允许函数从调用语句中手机任意数量的实参
一个制作披萨的寒素,它需要接受很多配料,但无法确定顾客要多少种配料,下面函数只有一个形参*toppings,不管调用语句提供了多少实参,这个形参都将他们统统收入囊中 def make_pizza(*toppings): #打印顾客点的所有配料 print(toppings) make_pizza("mo gu") make_pizza("cao mei", "xi hong shi","jiang liao") ("mo gu",) ("cao mei", "xi hong shi", "jiang liao") ======================================= #将print语句替换为一个循环 def make_pizza(*toppings): #打印顾客点的所有配料 print(" making a pizza with the following toppings :") for topping in toppings: print("- " + topping) make_pizza("mo gu") make_pizza("cao mei", "xi hong shi","jiang liao") making a pizza with the following toppings : - mo gu making a pizza with the following toppings : - cao mei - xi hong shi - jiang liao 5.结合使用位置实参和任意数量实参
如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后
python先匹配位置实参和关键字实参,再将余下的实参收集到最后一个形参中
如果前边的函数还需要一个表示披萨尺寸的实参,必须将该形参放在*toppings的前面 def make_pizza(size, *toppings): #打印顾客点的所有配料 print(" making a" + str(size) + "-inch pizza with the following toppings :") for topping in toppings: print("- " + topping) make_pizza(16, "mo gu") make_pizza(12, "cao mei", "xi hong shi","jiang liao") making a16-inch pizza with the following toppings : - mo gu making a12-inch pizza with the following toppings : - cao mei - xi hong shi - jiang liao 6.使用任意数量的关键字实参
有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是射门杨的信息,再这种情况下,可将函数编写成能够接受任意数量的键-值对,调用语句提供了多少就接受多少
创建用户简介:你知道你将收到有关用户的信息,但不确定会是什么样的信息,在下面示例中,build_profile()接受名和姓,同时还接受任意数量的关键字实参 def build_profile(first, last, **user_info): #创建一个字典,其中包含我们知道的有关用户的一切 profile = {} profile["first_name"] = first profile["last_name"] = last for key, value in user_info.items(): profile[key] = value return profile user_profile = build_profile("da ming", "zhang",location="bei jing", field="bai ling") print(user_profile) {"first_name": "da ming", "last_name": "zhang", "location": "bei jing", "field": "bai ling"} 7.将函数存储在模块中###1.导入整个模块 #要让函数是可导入的,得先创建模块,模块是拓展名为.py的文件 #创建一个包含函数make_pizza的模块 def make_pizza(size, *toppings): #打印顾客点的所有配料 print(" making a" + str(size) + "-inch pizza with the following toppings :") for topping in toppings: print("- " + topping) #在pizza.py所在的目录中创建另一个名为making_pizza.py的文件,这个文件导入刚创建的模块,使用import语句 import pizza pizza.make_pizza(16, "mo gu") pizza.make_pizza(12, "cao mei", "xi hong shi","jiang liao") making a16-inch pizza with the following toppings : - mo gu making a12-inch pizza with the following toppings : - cao mei - xi hong shi - jiang liao =========================================== #导入特定的函数 #还可以导入模块中特定的函数,语法如下: from module_name import function_name #通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数 from module_name import function_0, function_1, function_2 #对于前面的making_pizza.py示例,如果只想导入使用的函数 from pizza import make_pizza pizza.make_pizza(16, "mo gu") pizza.make_pizza(12, "cao mei", "xi hong shi","jiang liao") making a16-inch pizza with the following toppings : - mo gu making a12-inch pizza with the following toppings : - cao mei - xi hong shi - jiang liao ================================================= #使用as函数指定别名 #可以将导入的函数名称改为自己喜欢的名字 from pizza import make_pizza as mp mp(16, "mo gu") mp(12, "cao mei", "xi hong shi","jiang liao") #通用语法 from module_name import function_name as fn ================================================ #使用as给模块指定别名 import pizza as p p.make_pizza(16, "mo gu") p.make_pizza(12, "cao mei", "xi hong shi","jiang liao") #通用语法 import module_name as mn ============================================== #导入模块中的所有函数:使用星号* from pizza import * make_pizza(16, "mo gu") make_pizza(12, "cao mei", "xi hong shi","jiang liao") #通用语法 from module_name import *
C位出圈!P0。9间距以下产品将迎接市场大爆发从最近的展会和新品发布会不难看出,P0。9频频亮相,相关厂商十分关注P0。9以及P0。9以下产品的市场价格。通过对行家说产业研究中心的资料分析,以及RGB多年来对市场的观察研究数据
缺口高达50史无前例的LED显示IC荒,何时能消停?芯片荒席卷全球,显示(RGBBLU)驱动IC也未能幸免。一天两涨,都没货,没办法。只是涨个价能接受,问题是订金都交了不少,但还是拿不到货。为了保证每月稳定的显示驱动IC供货,龙头面
屏显科技与城市交通的结合,为智慧城市赋能近些年来,随着经济社会的不断发展,人们的生活质量也随之提升,人们的出行方式也越来越多,对于交通的依赖性也是愈来愈大。每日运营的公交车载人的计程车私人的小轿车等等,街道上的车辆川流不
LED显示屏组件辅材厂家该如何提高产品的生产效率对于制造业来说,如何提高产品的生产效率,这是每一个企业都在研究的问题。LED显示屏组件辅材产品在流水线上的生产效率会受到生产管理人员生产设备材料准备操作方法和工作环境等方面影响。比
顶流P0。9?没那么简单P0。9正成为LED显示行业新的顶流。不管是在展会亦或是各种行业论坛,0。9都牢牢占据着话题的C位。事情发生前,其实早有征兆。早在2019年8月,在2019高工产研全国新型显示巡回
涨涨涨涨!4家国产芯片厂商同一天宣布涨价国际电子商情不完全统计,本周一(5月31日)当天就有4家国产芯片厂商宣布调整产品价格。这4家厂商分别是士兰微智浦芯联瑞纳捷上海复旦微,涨价产品涵盖LED照明驱动开关电源管理芯片安全
MicroLED量产问题,他们解决了几个?当前,各国大厂积极投入MicroLED研发,但目前MicroLED在数百万数千万画素量级微米尺度等级,所面临生产制程均匀度控制转移组装良率等关键技术瓶颈尚待突破,预估尚须2到3年才
显示屏又叒叕涨价了!6月开始,不仅是材料贵了全球芯片还在持续短缺,今年年初芯片及各类下游厂商频繁发布涨价通知,距利亚德洲明艾比森等LED显示屏企业在5月中旬发布涨价函不到1月,高科光电迈锐光电等显示屏企业也纷纷紧随其后,迫不
赛力斯华为智选SF5的出现,让你不再担忧新能源汽车的续航问题很多人在购车的时候都会考虑新能源汽车,但同时又十分在意新能源汽车的续航问题。碎玉纯电动车来说,续航一直都是痛点,但是对于增程式电动车来说,完全不存在续航的问题。因此续航强劲的赛力斯
营收增长超57,洲明科技上半年做了什么?营收同比增长57。57,净利润同比增长14。38。8月8日晚间,洲明科技交出了2021年上半年成绩单。财报数据显示,2021年上半年洲明科技实现营业总收入29。32亿元,较去年同期
投资路上,普通人该如何正确看待各类观点前言如今大家获取信息的渠道很多,每天都能从各路大V那获取很多观点。面对复杂的信息,很多人不知所措,这抄点那抄点,把自己的思路弄得很混乱。今天给大家梳理一下我们应该如何对待获得的信息