python的函数_byseyOrd,,函数定义格式def


函数定义格式

def sum():
"""
函数说明
"""  pass

函数传值

1)普通传值

def sum(a, b):"""函数说明"""  passsum(1,2)sun(a=1,b=2)

2)函数参数设置默认值

def sum(a = 1, b):"""函数说明"""  passsum(b=2)

3)使用元组和列表传值——可变参数

  用于传入的参数个数不定的情况,所以当与普通参数一同使用时,把带星号的参数放在最后,使用*号可以将list或tuple的所有元素作为可变参数传进函数里,不管使用的是list还是tuple,变成可变参数时都会转成tuple

def f1(*d):    print(d, type(d))def f2(**d):    print(d, type(d))# 上面定义了两个函数,分别用了带一个星号和两个星号的参数:f1(1, 2, 3)f2(a = 1, b = 2, c = 3)# 结果如下(1, 2, 3) <</span>class ‘tuple‘>{‘a‘: 1, ‘c‘: 3, ‘b‘: 2} <</span>class ‘dict‘>#其中一个星号的参数是可变参数f1(1, 2, 3)#或nums = [1, 2, 3]fi(*nums)#或nums = (1, 2, 3)fi(*nums)

4)关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def person(name, age, **kw):    print(‘name:‘, name, ‘age:‘, age, ‘other:‘, kw) person(‘Adam‘, 45, gender=‘M‘, job=‘Engineer‘)name: Adam age: 45 other: {‘gender‘: ‘M‘, ‘job‘: ‘Engineer‘}

5)参数的类型和顺序

必选参数,默认参数,可变参数,关键字参数和命名关键字参数(星号越多越靠后)

def f1(a, b, c=0, *args, **kw):    pass
f1(a = 1, b = 2, c = 3, args = (‘a‘, ‘b‘), kw = {‘x‘: 99})
f1(1 ,2 , kw = {‘x‘: 99})

自定义函数参数检查

  自定义的函数没有参数检查功能,python自带的函数有这样的功能,在参数个数不对是会报TypeError,我们也可以通过raise一个TypeError实现参数检查功能

def my_abs(x):    if not isinstance(x, (int, float)):        raise TypeError(‘bad operand type‘)    if x >= 0:        return x    else:        return -x

return 多个值

  python是return多个值的情况是把多个值组成了一个元组再返回

python的函数_byseyOrd

评论关闭