摘要:函数是将具有特定功能的代码封装成一个代码块,可以通过函数名进行调用,其主要作用是提升代码的复用性和可维护性。
函数与模块
一、函数
(一)函数的定义
函数是将具有特定功能的代码封装成一个代码块,可以通过函数名进行调用,其主要作用是提升代码的复用性和可维护性。
def 函数名(参数列表):
"""文档字符串(可选)"""
函数体
return 返回值(可选)
• def:定义函数的关键字。
• 函数名:遵循标识符的命名规则。
• 参数列表:传递给函数的值,可有多个,用逗号分隔。
• 文档字符串:描述函数的功能、参数和返回值等。
• 函数体:函数的具体实现代码。
• return:返回函数的值,若没有return语句或return后无值,则返回None。
(二)函数的调用
通过函数名(实际参数)的方式调用函数。
(三)函数的参数
1. 位置参数:按参数位置传递值。
2. 默认值参数:定义函数时给参数设置默认值。
3. 关键字参数:调用函数时以“键=值”的形式传递参数,不需遵循位置顺序。
4. 可变参数:
• *args:以元组形式接收任意数量的位置参数。
• **kwargs:以字典形式接收任意数量的关键字参数。
(四)函数的返回值
使用return语句返回值,可返回任意类型数据,无return语句或无返回值时返回None。
(五)函数的作用域
• 局部作用域:函数内部定义的变量,仅在函数内部使用。
• 全局作用域:函数外部定义的变量,可在全局范围内使用。
• 内置作用域:Python内置的函数和变量。
(六)函数的高级用法
1. 匿名函数(lambda):用lambda关键字定义,仅能写一行表达式。
lambda 参数列表: 表达式
2. 递归函数:函数内部调用自身。
3. 生成器函数:使用yield关键字,返回生成器对象,可迭代获取值。
二、模块
(一)模块的定义
模块是包含Python代码的文件,扩展名为.py,可定义函数、类和变量等,供其他程序导入使用。
(二)模块的导入
1. 导入整个模块:
import 模块名
2. 导入模块中的特定对象:
from 模块名 import 对象名
3. 导入模块并重命名:
import 模块名 as 别名
4. 导入多个模块:
import 模块1, 模块2
(三)模块的搜索路径
Python解释器按以下顺序搜索模块:
1. 当前目录。
2. PYTHONPATH环境变量指定的路径。
3. Python标准库路径。
4. 已安装的第三方库路径。
(四)模块的内置函数
• dir(模块名):返回模块中定义的所有名称的列表。
• help(模块名):显示模块的帮助文档。
(五)创建自定义模块
1. 创建.py文件,在文件中定义函数、类和变量等。
2. 在其他文件中用import语句导入该模块。
(六)标准库和第三方库
1. 标准库:Python自带的库,无需安装,如os、sys、math等。
2. 第三方库:需手动安装的库,如numpy、pandas、django等,可用pip工具安装。
(七)包
• 包是包含多个模块的目录,目录中必须有__init__.py文件(可为空)。
• 可用.操作符导入包中的模块。
三、实例
(一)函数实例
# 计算阶乘的函数
def factorial(n):
"""计算一个数的阶乘"""
if n
return None
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial(5)) # 输出120
(二)模块实例
1. 创建一个模块mymodule.py:
# mymodule.py
def add(a, b):
"""加法函数"""
return a + b
def subtract(a, b):
"""减法函数"""
return a - b
2. 在另一个文件中导入并使用该模块:
# 导入模块
import mymodule
# 使用模块中的函数
print(mymodule.add(3, 5)) # 输出8
print(mymodule.subtract(10, 4)) # 输出6
来源:绿叶菜