前言
上一讲分享了条件循环语句,本讲将分享更大一级的函数 function。python 自带很多的内置函数,无疑提高了代码的可复用性,趋于模块化。采用 Q & A 的形式讲述并采用脑图形式总结。
Q1: 什么是函数
类比于数学函数,如 sin(x) 代表直角边/斜边。python 的函数由 def 关键字,函数名,参数列表,函数体组成。
def f1(x):
x += 1
return x
f1(5)
# 输出
6
Q2: 参数如何设置
参数可分为默认参数,可变参数,不定长参数。
- 默认参数是指声明函数时就设置了默认值。
def f1(x = 2):
x += 1
return x
f1()
# 输出
3
- 可变参数即声明函数时未设置默认值
- 不定长参数是指调用函数时,参数个数可变。声明函数时有规则:带 * 号以 tuple 导入,带 ** 号以 dict 导入。
def f1(x, *arg):
for a in arg:
x += a
return x
f1(2,3,4)
# 输出
9
def f1(x, **arg):
for a in arg:
x += arg[a]
return x
f1(2,a=3,b=4)
# 输出
9
Q3: 变量如何设置
变量可分为局部变量、全局变量。两者的作用域不一样。
- 局部变量是指函数内部定义的变量,作用域就在函数内;当然可以用global 关键字转为全局变量。
def f1(x):
x = 'boss'
print('函数内局部变量:',x)
a = input('请输入一个整数:')
f1(a)
print('函数外全局变量:',a)
# 输出
请输入一个整数:1
函数内局部变量: boss
函数外全局变量: 1
def f1():
global x
x = 'boss'
print('函数内转为全局变量:',x)
f1()
print('函数外全局变量:',x)
# 输出
函数内转为全局变量: boss
函数外全局变量: boss
- 全局变量是指作用域在全局的变量,在函数外部访问
Q4: return 关键字可有可无
return 表示退出函数,并返回一个表达式;如果没有 return ,则返回 None。
def f1():
global x
x = 'boss'
print(f1())
# 输出
None
补充说明
函数名不想命名,那就试试匿名函数 lambda 吧。一行表达式搞定,但逻辑有限。参数与函数体之间用冒号隔开。
f = lambda m : len(m)
f([2,4,3,1])
# 输出
4
f = lambda a,b,c : a + b + c
f(1,2,3)
# 输出
6