Python函数的定义和调用
- 函数定义使用def要害字,例如:def my_function():
- 函数调用使用函数名加括号,例如:my_function()
1.Python函数的形参有以下五种类型和使用规则及应用:
- 位置参数:按照定义顺序依次传入参数,数量和顺序必须一致。例如
def greet(name, age):
print(f"Hello {name}, you are {age} years old.")
greet("Alice", 30)
- 默认参数:在函数定义时给参数指定默认值,调用时能够不传入该参数,使用默认值。例如:
def greet(name, age=20):
print(f"Hello {name}, you are {age} years old.")
greet("Alice") # 输出:Hello Alice, you are 20 years old.
- 可变长位置参数:使用*号前缀,能够接受任意数量的位置参数,以元组形式传递。例如:
def sum_numbers(*numbers):
total = 0
for num in numbers:
total += num
return total
print(sum_numbers(1, 2, 3)) # 输出:6
- 可变长要害字参数:使用**号前缀,能够接受任意数量的要害字参数,以字典形式传递。例如:
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30) # 输出:name: Alice age: 30
- 强制要害字参数:使用*号作为分隔符,后面的参数必须使用要害字传入。例如:
def print_info(name, *, age):
print(f"Name: {name} Age: {age}")
print_info("Alice", age=30) # 输出:Name: Alice Age: 30
2. Python函数返回值使用return语句,能够返回任意类型的值
def add_numbers(a, b):
return a + b
result = add_numbers(3, 4)
print(result) # 输出:7
3.Python中能够定义嵌套函数,在函数内部定义的函数称为内部函数。
内部函数能够访问外部函数的变量,但是外部函数不能访问内部函数的变量。例如:
def outer_function():
x = 10
def inner_function():
nonlocal x
x += 5
print(f"Inner function: {x}")
inner_function()
print(f"Outer function: {x}")
outer_function()
输出:
Inner function: 15
Outer function: 15
4.使用global语句能够在函数内部访问并修改全局功能域中的变量。
例如:
x = 10
def my_function(): global x x += 5 print(x)
my_function() # 输出:15
5.使用nonlocal语句能够在内部函数中访问并修改外部函数的变量。
例如:
def outer_function():
x = 10
def inner_function():
nonlocal x
x += 5
print(x)
inner_function()
outer_function() # 输出:15
6.函数的调用原理是将函数体内的代码从上到下依次执行,遇到函数调用时会跳转到函数定义的位置执行函数体内的代码,并在执行完毕后返回到调用位置继续执行后续代码。
例如:
def greet():
print("Hello!")
print("Before function call.")
greet()
print("After function call.")
输出:
Before function call.
Hello!
After function call.
7.函数实参的两种传参方式:
- 位置参数传递:按照形参的位置依次传入实参,数量和顺序必须一致。例如:
def greet(name, age):
print(f"Hello {name}, you are {age} years old.")
greet("Alice", 30)
要害字参数传递:通过指定形参的名称传入实参,能够不按照顺序传入。例如
def greet(name, age):
print(f"Hello {name}, you are {age} years old.")
greet(age=30, name="Alice")
8.Python函数的功能域分为全局功能域和局部功能域。全局功能域指的是在函数外部定义的变量,能够在整个代码中访问。局部功能域指的是在函数内部定义的变量,只能在函数内部访问。
例如:
x = 10 # 全局变量
def my_function():
y = 5 # 局部变量
print(x) # 在函数内部能够访问全局变量
print(y)
my_function()
print(x) # 在函数外部也能够访问全局变量