函数
函数执行特定的操作并返回一个值,你可以调用他(调用时可能需要提供一些参数),函数是结构化编程的核心。
函数的定义
使用def
语句定义函数(例:计算斐波那契数)
# 返回包含n个斐波那契数的列表
def fibs(num):
result = [0,1]
for i in range(num-2):
result.append(result[-2] + result[-1])
return result
函数参数与作用域
默认参数:简化函数调用。使用默认参数后,传参可以省略对应的参数,如
def enroll(name, gender, age=6, city = 'Beijing'):
print("name = %s gender = %s age = %s city = %s" % name,gender,age,city)
enroll('Sarah','F')
enroll('Sarah', 'F', 7)
有多个默认参数时,调用的时候,既可以按顺序提供默认参数,也可以不按顺序提供部分默认参数。
可变参数:传入的参数个数可变,0~任意个,例
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n*n
return sum
关键字参数:允许传入0~任意个含参数名的参数,这些参数在函数内部自动组装为dict,例
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
person('Bob', 35, city = 'Beijing')
命名关键字参数,必须传入参数名,例
def person(name, age, *, city='Beijing', job):
print(name, age, city, job)
person('Jack', 24, job='Engineer')
函数返回值
return:结束函数调用、返回值,默认NoneType
可返回多个值,如 return a,b