python 3.6.4
jupyter notebook
windows 7
python函数中,位置参数是指直接放在函数名后括号中的参数,用逗号隔开。我们定义一个有2个位置参数的函数,代码示例如下: def make_pizza(size,topping): print('\nMaking a ' + str(size) + '-inch pizza with ' + topping)
接着向函数传递2个参数,以调用函数。代码示例如下: make_pizza(10,'durian')
python中,关键字参数是指用等号赋值的参数。如果关键字形参有默认值,则调用函数时未提供参数的情况下使用默认值;如果调用函数时提供了实参,则实参会代替函数定义里的默认值。代码示例如下: def make_pizza(size=10,topping='durian'): print('\nMaking a ' + str(size) + '-inch pizza with ' + topping)
接着,不传递参数直接调用函数。输出时参数值使用函数定义时的默认值。代码示例如下: make_pizza()
然后,向函数传递2个参数以调用函数。输出时参数值用调用函数时提供的实参。代码示例如下: make_pizza(12,'cheese')
位置参数个数跟位置都必须一样。如果想要灵活使用任意数量的参数,定义函数时可在形参名前加一个星号。代码示例如下: def make_pizza(*toppings): print('\nMaking a 10-inch with the following toppings:' ) for topping in toppings: print('-' + topping)
接着,向函数传递2个参数以调用函数。虽然定义函数时形参看起来只有1个,但实际上调用时可传递任意数量的实参。代码示例如下: make_pizza('durian','cheese')
格式如“*形参名”的参数虽可提供任意数量的参数,但是以元组形式存在。如果需要提供任意数量的键值对类型的参数,可在形参名前面加两个星号。代码示例如下: def make_pizza(**toppings): print('\nMaking a 10-inch with the following toppings:' ) for key,value in toppings.items(): print(key + ':' + value)
接着,向函数传递2个关键字实参以调用函数。虽然定义函数时形参看起来只有1个,但实际上调用时可传递任意数量的关键字实参。代码示例如下: make_pizza(topping1='durian',topping2='cheese')
以上四种参数可以单独使用,也可以混合使用。混合使用时,位置参数必须放在关键字参数之前,关键字参数必须放在带星号的可变参数之前,带一个星的可变参数必须放在带两个星的可变关键字参数之前。代码示例如下: def make_pizza(size,origin='durian',*fruits,**vegetables): toppings = [] toppings.append(origin) for fruit in fruits: toppings.append(fruit) for value in vegetables.values(): toppings.append(value) print('\nMaking a ' + str(size) + '-inch pizza with the following toppings:' ) print(toppings)
上述函数对应的代码解析如图。
接着向函数传递参数以调用函数。需要注意的是,调用函数时,系统先解读第一个参数为位置参数,第二个参数为关键字参数,剩下的单独参数会被当成一个元组存储,其它的关键字参数会被当成一个字典存储。 make_pizza(12,'durian','pineapple','peach',vegetable1='onion',vegtalbe2='green pepper')
1、有问题可点击提问交流~
2、如果觉得经验不错,欢迎点赞、投票、收藏以及分享哦~