1 传递列表
函数传递列表时 形参接受列表 没什么不同 例如
def greet_users(names):
for name in names:
msg="hello "+name.title()+"!"
print(msg)
names=['tom','mark','bobby']
greet_users(names)
2 传递元组
传递元组就有点不一样了 形参不知道要接受多少个参数(甚至参数类型不同) 1(*toppings) (不是什么指针)2 如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放最后,python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中 例如:
def mak_pizza(size,*toppings):
print("\nMaking a "+str(size)+"-inch pizza with the follow toppings")
for topping in toppings:
print("-"+topping)
mak_pizza(12,'pepperoni')
mak_pizza(18,'mushrooms','green peppers','extra cheese')
2 传递字典
传递字典时, 预先不知道传递给函数的会是什么样的信息 类似于1(**toppings) 例如;
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
property=user_profile=build_profile('tom','einstein',location='princeton',field='physics')
print(property)