Python之函数-参数

位置参数:

>>> def power(x): #x就是一个位置参数
...     return x*x
... 
>>> power(3)
9
>>> 

默认参数:

>>> def power(x , n=2 ): #n即是默认参数,函数定义时传入默认值
...     s = 1
...     while n > 0:
...         n = n - 1
...         s = s* x
...     return s
... 
>>> power(2) #函数调用时可以不传入n的值,此时n即为默认值2
4
>>> power(2,3) #调用时传入参数,此时n的值为3
8
>>> 

可变参数:

>>> def calc(numbers): #当需要传入多个参数时可以使用list
...     sum = 0
...     for x in numbers:
...         sum = sum + x*x  
...     return sum
... 
>>> num = [1, 2, 3, 4]
>>> num_t = (1, 2, 3, 4)
>>> calc(num) #调用时传入list
30
>>> calc(num_t)#也可以调用时传入tuple
30
>>> def calc_s(*numbers):#利用可变参数定义函数
...     sum = 0
...     for x in numbers:
...         sum = sum + x*x
...     return sum
... 
>>> calc(1, 2, 3, 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: calc() takes 1 positional argument but 4 were given
>>> calc_s(1, 2, 3, 4) #函数调用时可以直接传入任意个参数,不需要利用list或tuple
30
>>> calc_s(*num) #list和tuple也可以通过加一个*传入函数
30
>>> calc_s(*num_t)
30
>>> 

关键字参数:

>>> def person(name,age,**kw): #kw即为关键字参数
...     print('name:',name , 'age:', age, kw)
... 
>>> person('xiaoming',12) #调用时可以只传入默认参数
name: xiaoming age: 12 {}
>>> person('xiaoming',12, job='student')   #也可以传入任意个带关键字参数
name: xiaoming age: 12 {'job': 'student'}
>>> detail = {'city':'beijing','job':'student'}
>>> person('xiaoming',12,**detail)#类似于可变参数,也可以利用字典传入参数
name: xiaoming age: 12 {'city': 'beijing', 'job': 'student'}
>>> 

tips:

  • 可变参数允许调用时传入任意个参数,这些参数自动组装为一个tuple;关键字参数允许调用时传入任意个带关键字的参数,这些参数自动组装为一个字典
  • 关键字参数可以拓展函数的功能

命名关键字参数:

如果要限制传入的关键字参数名字,就可以使用命名关键字参数

>>> def person(name,age,*,city = 'beijing',job):#*后面即为命名关键字参数,定义时也可以传入缺省值
...     print(name, age, city, job)
... 
>>> person('xiaoming',12,job = 'student')
xiaoming 12 beijing student
>>> person('xiaoming',12,city = 'xian',job = 'student')#调用时必须加参数名,和位置参数区分开
xiaoming 12 xian student
>>> 

tips:

  • 命名关键字参数需要一个特殊分隔符 * , * 后面的参数视为命名关键字参数
  • 如果函数定义时有可变参数,则不在需要分隔符 * .
  • 函数定义时可以时多种参数的组合,但定义时几种参数的顺序必须是必选参数、默认参数、可变参数、命名关键字参数和关键字参数.

以上内容摘抄自于廖雪峰的官方网站-Python教程-函数的参数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值