函数
调用函数时,假如传入的参数数量不对,会报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'}
>>>
关键字参数可以扩展函数的功能,比如做一个用户注册的功能, 除了用户名与年龄是必填项外,其他都是可选项,这时候就可以利用关键字参数完成这个需求