一、定义和调用
- 先定义,后调用。
- 形参和返回值不定义类型。
python
1. 定义
def 函数名(形参列表)
函数体
return 返回值
2. 调用
ret = 函数名(实参列表)
二、参数
1、形参
- 可以有默认参数值 ,但要放到 没有默认参数的形参后面。
python
def add(x, y, debug=False):
if debug:
print(f'调试信息: x={x}, y={y}')
return x + y
print(add(10, 20)) # 使用默认参数值
print(add(10, 20, True)) # 不使用默认参数值
2、实参
- 形参与实参要一一对应。
- 若实参与形参顺序不一致,可用关键字参数。
python
def test(x, y):
print(f'x = {x}')
print(f'y = {y}')
test(y=100, x=200)
三、返回值
- 返回值可以有多个。
- 调用函数时,不需要的返回值可用 _ 占位忽略。
python
def getPoint():
x = 10
y = 20
return x, y
_, b = getPoint()
四、变量作用域
- 函数里边定义的是局部变量 ,函数外部定义的是全局变量。
- 同名局部、全局变量同时存在,函数里优先使用局部变量。
- 函数里修改全局变量,使用 global 修饰引用。
python
x = 20
def test():
global x # 若不修饰 global,会认为 x = 10 是局部变量定义
x = 10
print(f'函数内部 x = {x}')
test()
print(f'函数外部 x = {x}')
- if / while / for 语句块不影响变量作用域:
python
# 这时 i 就是全局变量
for i in range(1, 10):
print(f'for循环 i = {i}')
def test():
global i
i = 100
print(f'函数内部 x = {i}')