Python02

函数

调用函数时,假如传入的参数数量不对,会报TypeError错误,假如传入的参数数量是对的,但是参数类型不能被函数接受,也会报TypeError错误。内置函数max()可以接受任意多的参数,返回最大的数

>>> max(1, 3, 9, -10,10)

还包含一些数据类型转换函数,int(),float(),str(),bool()等。
函数名是指向一个函数对象的引用,可以把函数名赋给一个变量,相当于起别名。

>>> a  = abs# 变量a指向abs函数,求绝对值
>>> a(-10)
10

函数定义

一定要用def语句

def my_abs(x):
    if x > 0:
        return x
    else:
        return -x
print(my_abs(-10))

定义一个空函数,可以用pass语句,一般都是用来做占位符,开发过程中经常会用到,函数也可以利用元组来返回多个值,当然参数也可以为多个。

默认参数

直接给参数一个默认值。

def power(x, n = 2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
print(power(10))

这样只传一个参数也可以,两个参数也可以。使用默认参数时,必选参数必须在前,默认参数在后面,当有多个参数时,把变化大的参数放在前面,变化小的参数放后面,变化小的参数就可以作为默认参数。默认参数必须指向不可变对象。

可变参数

定义一个可变参数,在参数前面加*号

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
print(calc(1,2))

参数numbers接收到的是一个元组,调用这个函数时,可以传入任意个参数,甚至是不传参数。Python允许你在列表或者元组前面加一个*号直接当成可变参数传进去

nums = [1,2,3]
print(calc(*nums))

关键字参数

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

>>> def person(name, age, **kw):
    print('名字是',name,'年龄是',age,'other',kw)
>>> person('Lily',17)
名字是 Lily 年龄是 17 other {}
>>> person('Lucy',18,city = 'NanChang')
名字是 Lucy 年龄是 18 other {'city': 'NanChang'}
>>> 

关键字参数可以扩展函数的功能,比如做一个用户注册的功能, 除了用户名与年龄是必填项外,其他都是可选项,这时候就可以利用关键字参数完成这个需求

命名关键字参数

你可能感兴趣的:(Python02)