Python 入门:函数与模块
函数是 Python 代码的基本组织单位,它允许我们将常用的代码封装在一个独立的块中,并在需要时调用,而不需要重复编写相同的代码。而模块则是由多个 Python 文件组成的结构化代码集合,它允许我们对代码进行更好的管理,并且可以与他人共享。
目录
3.4 __name__ == "__main__" 的作用
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. 练习题
-
编写一个计算圆的面积的函数,用户输入半径后返回面积。
-
创建一个模块
math_utils.py
,定义一个计算阶乘的函数factorial(n)
,然后在另一个文件中导入并使用。 -
使用
*args
编写一个计算多个数相加的函数。 -
创建一个
config.py
文件,定义全局变量,然后在主程序中导入并使用。
5. 总结
在本篇文章中,我们深入学习了 Python 中的函数和模块,包括函数的定义、参数传递、变量作用域以及模块的创建与导入。掌握这些知识后,你将能够编写更加模块化和可维护的代码。
在下一篇文章中,我们将探讨 Python 的文件操作,包括如何读写文件、处理 CSV 和 JSON 数据等内容,帮助你更好地处理数据!

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