函数是 Python 编程中非常重要的概念,它可以帮助我们组织代码、提高代码的重用性和可维护性。
首先函数整体大致的了解下,后面有逐个超详细的讲解:
# 函数的 定义
def 函数名(形式参数,位置参数,默认参数,不定量参数,):
函数执行体
return (返回值)
# 函数的调用
函数名(实际参数)
1.函数的基本定义和调用
函数的定义使用关键字 def
,后面跟着函数的名称、参数列表和冒号
def greet(name):
print("Hello, " + name + "!")
函数的调用直接使用函数名称和参数:
greet("Alice") # 输出:Hello, Alice!
2.函数的返回值
函数可以返回一个结果给调用者使用,使用关键字 return
:
def add_numbers(a, b):
return a + b
result = add_numbers(3, 5)
print(result) # 输出:8
3.函数的参数
函数可以接受参数,在函数定义中声明,然后在函数调用时传入:
- 位置参数:按照参数的顺序传递,数量和顺序必须一致。
- 关键字参数:使用参数名和参数值对的形式传递,不受顺序限制。
def greet(name, age):
print("Hello, " + name + "! You are " + str(age) + " years old.")
greet("Bob", 25) # 输出:Hello, Bob! You are 25 years old.
greet(age=30, name="Alice") # 输出:Hello, Alice! You are 30 years old.
4. 默认参数
函数参数可以设置默认值,在调用时可不传递这些参数。默认参数必须在位置参数后面定义。
def greet(name, greeting="Hello"):
print(greeting + ", " + name + "!")
greet("Alice") # 输出:Hello, Alice!
greet("Bob", "Hi") # 输出:Hi, Bob!
5.不定数量的参数
函数可以接受不定数量的参数,分为两种:
- 不定数量的位置参数,使用
*args
语法,参数将作为元组传递给函数。 - 不定数量的关键字参数,使用
**kwargs
语法,参数将作为字典传递给函数。
def calculate_sum(*nums):
total = sum(nums)
return total
result = calculate_sum(1, 2, 3, 4, 5)
print(result) # 输出:15
def print_info(**kwargs):
for key, value in kwargs.items():
print(key + ": " + value)
print_info(name="Alice", age="25", city="New York")
# 输出:
# name: Alice
# age: 25
# city: New York
6. 匿名函数
匿名函数可以使用 lambda
关键字定义,通常用于简单的函数场景。
add = lambda a, b: a + b
result = add(2, 3)
print(result) # 输出:5
7. 递归函数
递归函数是在函数内部调用自身的函数。使用递归函数需要注意设定递归的终止条件。
def factorial(n):
if n == 0:
return 1
return n * factorial(n-1)
result = factorial(5)
print(result) # 输出:120
扩展:以上是函数从入门到进阶的详细讲解,包括函数的定义和调用、返回值、参数传递、默认参数、不定数量的参数、匿名函数和递归函数。通过灵活使用函数,可以使代码更具结构化、可读性和可维护性。