Python函数与模块笔记
Python函数与模块笔记
目录
- 函数
- 无参函数
- 带参函数
- 变量作用域
- Lambda函数
- 常用内置函数
- 模块与包
- 模块的定义与导入
- 包的使用
- 常用模块(keyword、random、sys、time)
一、函数
1. 无参函数
- 定义语法:
def 函数名():
代码块
return [表达式] # 无return则默认返回None
- 示例:
def add():
op1 = 10
op2 = 20
rt = op1 + op2
print(op1, '+', op2, '=', rt)
return # 返回None
add() # 输出:10 + 20 = 30
- 注意事项:
- 函数定义需在调用之前。
- 函数体代码需正确缩进。
- 函数名不能以数字开头。
2. 带参函数
- 定义语法:
def 函数名(形参列表):
代码块
return [表达式]
- 参数传递方式:
- 位置参数:按顺序匹配形参。
def aa(x, y):
print(x, y)
aa(10, 6) # 输出:10 6
-
- 关键字参数:指定形参名,顺序无关。
aa(x=10, y=6) # 输出:10 6
aa(y=6, x=10) # 输出:10 6
- 默认参数:
- 默认参数需在位置参数之后。
def aa(x, y=1): # 正确
print(x, y)
def aa(x=1, y): # 错误
pass
- 综合示例(计算器):
def add(x, y):
return x + y
def subtract(x, y):
return x - y
# 用户输入与调用逻辑(部分代码)
choice = int(input("输入运算选择(1/2/3/4):"))
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
if choice == 1:
print(num1, "+", num2, "=", add(num1, num2))
3. 变量作用域
- 全局变量:模块顶层定义,所有函数可访问。
- 局部变量:函数内部定义,仅函数内有效。
- 同名优先级:局部变量 > 全局变量。
- 示例:
name = 'Tim' # 全局变量
def f1():
age = 18 # 局部变量
print(age, name) # 输出:18 Tim
def f2():
age = 19 # 局部变量
print(age, name) # 输出:19 Tim
- global关键字:在函数内声明全局变量。
def f1():
global name
name = 'Tim' # 修改全局变量
4. Lambda函数
- 语法:
lambda 参数列表: 表达式
- 示例:
sum1 = lambda x, y: x + y
print(sum1(3, 4)) # 输出:7
- 限制:
- 仅支持单行表达式,不能包含复杂逻辑(如循环、条件分支)。
5. 常用内置函数
函数 | 说明 | 示例 |
abs(x) | 返回绝对值 | abs(-10) → 10 |
bool(x) | 转换为布尔值 | bool(0) → False |
float(x) | 转换为浮点数 | float('25') → 25.0 |
int(x) | 转换为整数 | int('100') → 100 |
range() | 生成整数序列 | list(range(0,5)) → [0,1,2,3,4] |
sum() | 求和 | sum([1,2,3]) → 6 |
max() | 返回最大值 | max([6,2,12]) → 12 |
min() | 返回最小值 | min([6,2,12]) → 2 |
二、模块与包
1. 模块
- 定义:包含函数/类的.py文件。
- 导入方式:
- 导入整个模块:
import myModule
myModule.add(2, 3)
-
- 导入指定函数:
from myModule import add, mul
add(2, 3)
-
- 使用别名:
from myModule import add as add1
2. 包
- 定义:包含__init__.py的目录,用于组织模块。
- 导入子模块:
import subproject.submodel
subproject.submodel.add(1, 3)
- __init__.py作用:初始化包(可包含公共代码)。
3. 常用模块
(1)keyword模块
- 检查关键字:
import keyword
print(keyword.iskeyword("if")) # True
(2)random模块
- 常用方法:
import random
print(random.randint(1, 100)) # 随机整数
print(random.choice(['a', 'b'])) # 随机选择元素
random.shuffle(list1) # 打乱列表顺序
(3)sys模块
- 系统属性:
import sys
print(sys.version) # Python版本
print(sys.path) # 模块搜索路径
(4)time模块
- 时间处理:
import time
print(time.time()) # 时间戳(秒)
print(time.ctime()) # 字符串时间
t = time.localtime() # 时间元组
print(t.tm_year) # 年份
注意事项
- 函数定义顺序:必须先定义后调用。
- 参数匹配:实参个数需与形参一致。
- 全局变量慎用:避免意外修改。
- 模块导入优化:推荐在顶层导入。