目录

1. 引言

2. Python 函数

2.1 什么是函数?

2.2 定义函数

2.3 函数参数与返回值

2.3.1 位置参数

2.3.2 关键字参数

2.3.3 默认参数

2.3.4 可变参数(*args 和 **kwargs)

2.4 变量作用域

3. Python 模块

3.1 什么是模块?

3.2 导入模块

3.2.1 import 语句

3.2.2 from...import 语句

3.2.3 import as 语句

3.3 创建自定义模块

3.4 __name__ == "__main__" 的作用

4. 练习题

5. 总结


1. 引言

在前面的文章中,我们学习了 Python 的基础语法、数据类型以及流程控制语句。随着程序变得越来越复杂,代码的组织与复用变得尤为重要。函数和模块是 Python 编程中至关重要的工具,它们可以帮助我们将代码拆分为独立的、可重复使用的单元,提高代码的可读性和维护性。

函数是 Python 代码的基本组织单位,它允许我们将常用的代码封装在一个独立的块中,并在需要时调用,而不需要重复编写相同的代码。而模块则是由多个 Python 文件组成的结构化代码集合,它允许我们对代码进行更好的管理,并且可以与他人共享。

本篇文章将深入探讨 Python 中的函数、参数传递、作用域规则、匿名函数、内置函数、模块的导入与创建等内容。

2. Python 函数

2.1 什么是函数?

函数是 Python 中的一种代码块,它封装了一段可执行的代码,能够被多次调用,从而减少冗余代码,提高代码的可维护性。Python 提供了两种主要的函数类型:

  • 内置函数(Built-in Functions):Python 语言本身提供的一些常见函数,如 print()len()sum()

  • 用户定义函数(User-defined Functions):程序员自己创建的函数,用于特定任务。

2.2 定义函数

Python 使用 def 关键字来定义一个函数,其基本结构如下:

def 函数名(参数):
    """函数的文档字符串"""
    代码块
    return 返回值

示例:

def greet(name):
    """打印问候语"""
    print(f"Hello, {name}!")

greet("Alice")

2.3 函数参数与返回值

2.3.1 位置参数
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出 8
2.3.2 关键字参数
def introduce(name, age):
    print(f"我是{name},我今年{age}岁。")

introduce(age=25, name="张三")
2.3.3 默认参数
def power(base, exponent=2):
    return base ** exponent

print(power(3))  # 9(默认指数 2)
print(power(3, 3))  # 27
2.3.4 可变参数(*args 和 **kwargs)

*args 允许传递多个参数作为元组,而 **kwargs 允许传递多个键值对作为字典。

def sum_numbers(*args):
    return sum(args)

print(sum_numbers(1, 2, 3, 4, 5))  # 15
def person_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

person_info(name="Alice", age=30, city="New York")

2.4 变量作用域

Python 变量作用域分为局部作用域(Local)、全局作用域(Global)、嵌套作用域(Enclosing)和内置作用域(Built-in)。

x = 10  # 全局变量

def foo():
    x = 5  # 局部变量
    print(x)

foo()  # 输出 5
print(x)  # 输出 10

使用 global 关键字可以在函数内部修改全局变量。

global_var = 100

def modify_global():
    global global_var
    global_var = 200

modify_global()
print(global_var)  # 200

3. Python 模块

3.1 什么是模块?

模块(Module)是 Python 中用于组织代码的基本单位,它通常是一个包含 Python 代码的 .py 文件。模块可以包含变量、函数、类等,并且可以在其他 Python 文件中被导入和使用。

3.2 导入模块

Python 提供了多种导入模块的方法。

3.2.1 import 语句
import math
print(math.sqrt(16))  # 4.0
3.2.2 from...import 语句
from math import sqrt
print(sqrt(25))  # 5.0
3.2.3 import as 语句
import numpy as np
array = np.array([1, 2, 3])
print(array)

3.3 创建自定义模块

我们可以创建一个 Python 文件(如 my_module.py)来定义自己的模块。

my_module.py

def say_hello(name):
    return f"Hello, {name}!"

然后在其他 Python 文件中导入并使用:

import my_module
print(my_module.say_hello("Alice"))

3.4 __name__ == "__main__" 的作用

在 Python 中,每个文件都有一个 __name__ 变量。如果文件是被直接执行的,__name__ 的值为 "__main__",否则是模块名。

def main():
    print("该文件被直接运行")

if __name__ == "__main__":
    main()

4. 练习题

  1. 编写一个计算圆的面积的函数,用户输入半径后返回面积。

  2. 创建一个模块 math_utils.py,定义一个计算阶乘的函数 factorial(n),然后在另一个文件中导入并使用。

  3. 使用 *args 编写一个计算多个数相加的函数。

  4. 创建一个 config.py 文件,定义全局变量,然后在主程序中导入并使用。

5. 总结

在本篇文章中,我们深入学习了 Python 中的函数和模块,包括函数的定义、参数传递、变量作用域以及模块的创建与导入。掌握这些知识后,你将能够编写更加模块化和可维护的代码。

在下一篇文章中,我们将探讨 Python 的文件操作,包括如何读写文件、处理 CSV 和 JSON 数据等内容,帮助你更好地处理数据!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐