跳至主要內容

5. 函数与模块

小白debug大约 3 分钟

5. 函数与模块

在这一节里,我们将深入了解函数和模块,并对它们进行一些扩展讲解。

函数:让代码更有逻辑

函数是编程中不可或缺的一部分。它们像是小工厂,接收一些输入(参数),进行一些操作,然后返回一个结果。

简单来说,函数就是一段处理逻辑,你给它一些信息,它会给你一个处理后的结果。

例如,我们写了一个计算两个数字和的函数:

def add_numbers(a, b):
    result = a + b
    return result

在这个例子中,add_numbers 是我们定义的函数名,ab 是传入的参数。函数内部执行了一个加法操作,并将结果返回。

函数变量

函数变量指的是将函数本身赋值给一个变量,比如:

def greet(name):
    message = "Hello, " + name + "!"
    return message

在这个例子中,greet 是一个函数,我们将它赋值给了变量 say_hello

say_hello = greet

现在,say_hellogreet 具有相同的功能。

模块:代码的组织者

模块是一组相关的函数和变量的集合,它们被放在一个独立的文件中,以便于组织和重复使用。

比如,我们可以把之前写的 add_numbers 函数放在一个叫做 calculator.py 的文件中,然后在其他地方通过导入这个模块来使用这个函数。

# 在其他文件中使用
import calculator

result = calculator.add_numbers(2, 3)
print(result)  # 这里会输出 5

特殊情况:导入函数名

有时候我们只需要导入模块中的一个函数,而不是全部函数。可以使用以下方式:

from calculator import add_numbers

函数冲突

如果在同一个文件中定义了两个同名函数,后面的函数会覆盖前面的函数。

def greet():
    return "Hello, World!"

def greet():
    return "Bonjour!"

result = greet()
print(result)  # 输出 "Bonjour!"

处理模块内函数冲突

如果导入了两个模块,它们内部有同名函数,Python 将会以最后导入的模块函数为准。

示例:

假设有两个模块 module1.pymodule2.py,它们都定义了同名函数 add_numbers

# module1.py

def add_numbers(a, b):
    return a + b
# module2.py

def add_numbers(a, b):
    return a * b

如果你在另一个文件中导入了这两个模块:

from module1 import add_numbers as add1
from module2 import add_numbers as add2

result1 = add1(2, 3)
result2 = add2(2, 3)

print(result1)  # 输出 5
print(result2)  # 输出 6

在这个例子中,我们通过别名来区分了两个同名函数。from module1 import add_numbers as add1 表示从 module1 中导入 add_numbers 并将其别名设为 add1,同理,from module2 import add_numbers as add2

这样,你就可以在同一程序中使用两个模块中的同名函数了。

实战例子:制作一个简单的计算器

让我们来动手实践一下!我们将制作一个简单的计算器,可以进行加减乘除操作。

# calculator.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b != 0:
        return a / b
    else:
        return "Error: Division by zero!"
# main.py

import calculator

result_add = calculator.add(5, 3)
result_subtract = calculator.subtract(5, 3)
result_multiply = calculator.multiply(5, 3)
result_divide = calculator.divide(5, 3)

print("5 + 3 =", result_add)
print("5 - 3 =", result_subtract)
print("5 * 3 =", result_multiply)
print("5 / 3 =", result_divide)

总结

通过这篇文章,我们学习了如何使用函数使代码更有逻辑,以及如何使用模块来组织代码。我们还通过实战例子制作了一个简单的计算器,巩固了所学知识。

希望你现在对函数和模块有了更清晰的理解。继续加油,你已经迈出了成为 Python 大师的第一步!

训练营看视频