20190618—位置参数、默认参数、不定长参数
1、位置参数
1 def menu(staters,staple_food): 2 print('这个顾客点的开胃菜是'+staters+',主食是'+staple_food+'。\n') 3 menu('酸辣白菜','米饭') 4 # '酸,所以叫做“位置参数”辣白菜','米饭'对应的参数staters和staple_food的位置是传递顺序;\n表示换行。 5 6 # 另一种表达方式:直接在括号里面赋值 7 menu(staters='米饭',staple_food='酸辣白菜')
》》》》》》
这个顾客点的开胃菜是酸辣白菜,主食是米饭。
这个顾客点的开胃菜是米饭,主食是酸辣白菜。
2、默认参数
1 def menu(staters,staple_food,dessert='布丁'): 2 print('这个顾客点的开胃菜是'+staters+',主食是'+staple_food+',甜品是'+dessert+'。\n') 3 menu('酸辣白菜','米饭') 4 # dessert的位置从一开始就固定在了括号内,dessert叫做默认参数
》》》》》》》
这个顾客点的开胃菜是酸辣白菜,主食是米饭,甜品是布丁。
3、元祖
1 def menu(*dessert): 2 for i in dessert: 3 print('今日新推出的甜点有:'+i) 4 menu('布丁','酸奶','面包') 5 # menu('布丁','酸奶','面包')就叫做元祖,元祖是可迭代的对象,需要用for..in...来遍历它。
》》》》》》
今日新推出的甜点有:布丁
今日新推出的甜点有:酸奶
今日新推出的甜点有:面包
4、不定长参数
1 def menu(greens,staple_food,*barbecue,dessert='布丁'): 2 print('38号桌顾客点的热菜:'+greens+'\n主食:'+staple_food) 3 for i in barbecue: 4 print('烧烤:'+i) 5 print('甜点:'+dessert) 6 menu('红烧带鱼','米饭','羊肉串','烤肥肠','烤茄子') 7 # menu('红烧带鱼','米饭','羊肉串','烤肥肠','烤茄子')的元素位置与menu(greens,staple_food,*barbecue,dessert='布丁')的元素位置一一对应,因此,默认元素dessert='布丁'需放在最后面,不能随意挪动位置,否则传递的位置至会对应不上
》》》》》》
38号桌顾客点的热菜:红烧带鱼
主食:米饭
烧烤:羊肉串
烧烤:烤肥肠
烧烤:烤茄子
甜点:布丁
def menu(zhushi,kaiweicai,tianpin='沙拉'): print('一份主食'+zhushi) print('一份开胃菜'+kaiweicai) print('一份甜品'+tianpin) menu('米饭','酸黄瓜') def menu(recai,liangcai,*shaokao,tiandian='慕斯蛋糕'): # 默认参数tiandian需放在不定长参数shaokao后面,否则打印的时候传递值会对应不上 print('今日特价热菜'+recai) print('今日特价凉菜'+liangcai) for i in shaokao: print('本店最新推出的烧烤有:'+i) print('今日限量供应甜点'+tiandian) menu('红烧肉','凉拌小黄瓜','烤鸡翅','烤玉米','烤羊肉串','烤牛排') list1=('干果','芝士蛋糕','冰淇淋','面包') def menu(*tiandian): print(tiandian) menu(*list1)