用钢铁意志,成就不平凡人生。
上期我们学习了input()函数和while循环https://blog.csdn.net/m0_71721954/article/details/131158697
接下来我们学习函数
函数定义
Python函数是一段可重复使用的代码块,可以接受输入参数并返回结果。函数可以帮助我们组织和封装代码,使其更具可读性、可维护性和复用性。
在Python中,你可以通过以下方式定义一个函数:
def function_name(parameters):
# 函数体
# 执行特定操作
# 返回结果(可选)
其中,`function_name` 是函数的名称,你可以根据需要自定义命名。`parameters`(也称为函数参数)是函数接受的输入参数,可以有多个参数或者没有参数。函数体是包含在函数内部的代码块,它定义了函数应该执行的操作。
传递实参
在调用函数时,你可以通过传递实参来向函数传递数据。在Python中,有几种不同的方式可以传递实参给函数:
1. 位置参数(Positional arguments):这是最常见的一种方式,实参按照函数定义中参数的顺序进行传递。例如:
def greet(name, age):
print("Hello, " + name + "! You are " + str(age) + " years old.")
greet("Alice", 25)
在上面的例子中,我们定义了一个 `greet` 函数,接受两个位置参数 `name` 和 `age`。当我们调用 `greet("Alice", 25)` 时,将会按照传递的实参顺序依次赋值给函数中的参数。
2. 关键字参数(Keyword arguments):通过指定参数名和对应的值来传递实参,可以不考虑参数的顺序。例如:
def greet(name, age):
print("Hello, " + name + "! You are " + str(age) + " years old.")
greet(age=25, name="Alice")
在上面的例子中,我们通过指定参数名来传递实参,不再依赖于位置。调用 `greet(age=25, name="Alice")` 会根据参数名将实参传递给相应的参数。
3. 默认参数(Default arguments):在函数定义时,可以为参数设置默认值。如果在函数调用时没有传递对应参数的实参,则使用默认值。例如:
def greet(name, age=18):
print("Hello, " + name + "! You are " + str(age) + " years old.")
greet("Alice")
在上面的例子中,我们为 `age` 参数设置了默认值 18。如果调用 `greet("Alice")` 时没有传递 `age` 的实参,函数会使用默认值。
返回值
当函数执行完毕后,你可以使用 `return` 语句返回一个值给调用函数的地方。这个返回值可以是任何数据类型,包括数字、字符串、列表、字典等。例如,下面是一个简单的函数示例,它接受两个参数并返回它们的和:
def add(a, b):
return a + b
result = add(3, 5)
print(result)
在上面的代码中,`add` 函数接受两个参数 `a` 和 `b`,并使用 `return` 语句将它们的和作为返回值。当我们调用 `add(3, 5)` 时,返回值 8 被赋值给变量 `result`,然后打印输出。
注意,使用 `return` 语句会结束函数的执行并将控制权交还给调用函数的地方。因此,如果在函数内部有多个 `return` 语句,只有第一个被执行到的 `return` 语句会生效。
如果函数没有显式地使用 `return` 语句,或者 `return` 后面没有跟任何值,则默认返回 `None`。`None` 是Python中表示空值或缺失值的特殊对象。以下是一个没有返回值的函数示例:
def greet(name):
print("Hello, " + name + "!")
result = greet("Alice")
print(result)
# 输出 None
在上面的代码中,`greet` 函数没有使用 `return` 语句,因此调用 `greet("Alice")` 返回的值是 `None`,然后打印输出。
返回值允许函数将结果传递给调用函数的地方,并且可以在函数外部进行进一步处理或使用。
将函数存储在模块中
将函数存储在模块中可以使其在多个程序中重复使用,并提供更好的代码组织和维护。一个模块是一个包含 Python 定义和语句的文件,它的扩展名通常是 `.py`。
下面是一个简单的示例,展示了如何将函数存储在模块中:
首先,创建一个名为 `my_module.py` 的文件,并在其中定义一个函数:
# my_module.py
def greet(name):
print("Hello, " + name + "!")
def add(a, b):
return a + b
保存该文件后,你可以在其他程序中导入这个模块,并使用其中定义的函数。以下是一个使用 `my_module` 模块的示例:
# main.py
import my_module
my_module.greet("Alice")
result = my_module.add(3, 5)
print(result) # 输出 8
在上面的代码中,我们使用 `import` 关键字导入了 `my_module` 模块。然后,就可以通过 `my_module.<function_name>` 的方式访问模块中的函数。
调用 `my_module.greet("Alice")` 将会执行 `my_module` 模块中的 `greet` 函数,打印输出 "Hello, Alice!"。调用 `my_module.add(3, 5)` 返回结果 8,然后打印输出。
通过将函数存储在模块中,你可以创建一个可重用并具有独立功能的代码库。只需在需要使用这些函数的地方导入模块,并使用其中定义的函数即可。