函数
函数
为了减少重复,函数登场。
定义函数
在Python中可以使用 def 关键字来定义函数,程序中函数的参数就相当于是数学上说的函数的自变量,可以通过 return 关键字来返回一个值,这相当于数学上说的函数的因变量。
def add(a, b):
"""
add two nums
:param a: first num
:param b: second num
:return: result
"""
c = a + b
return c
使用函数
使用函数时,只需要将参数换成特定的值传给函数。
# Python并没有限定参数的类型,因此可以使用不同的参数类型:
print(add(2, 3))
print(add('foo', 'bar')) # foobar
传入参数时,Python提供了两种选项,
第一种是上面使用的按照位置传入参数,
另一种则是使用关键词模式,显式地指定参数的值:
add(a=2, b=3)
add(b='morning', a='good')
add(2, b=3) # 5
设定默认参数
def quad(x, a=1, b=0, c=0):
return a * x * x + b * x + c
quad(2.0)
quad(2.0, b=3)
接收不定参数
使用如下方法,可以使函数接受不定数目的参数,类似java的..多个参数:
def add(x, *args):
total = x
for arg in args:
total += arg
return total
*args 表示参数数目不定,可以看成一个元组,
把第一个参数后面的参数当作元组中的元素。
print(add(1, 2, 3, 4, 5)) # 15
print(add(1, 2)) # 3
使用关键词传入参数
def add(x, **kwargs):
total = x
for arg, val in kwargs.items():
print("adding ", arg)
total += val
return total
**kwargs 表示参数数目不定,相当于一个字典,关键词 和值对应于键值对。
add(1, a=2, b=3) # 6
# 可以接收任意数目的位置参数和键值对参数:
def fun1(*args, **kwargs):
print(args, kwargs)
fun1(2, 3, a="bar", b=10) # (2, 3) {'a': u'bar', 'b': 10}