当前位置: 首页 > news >正文

【第一章:人工智能基础】01.Python基础及常用工具包-(2)Python函数与模块

第一章 人工智能基础

第一部分:Python基础及常用工具包

第二节:Python函数与模块

内容:定义和使用函数,模块的导入与使用,常见标准库

一、引言

函数和模块是编程中复用代码、组织结构的关键。在人工智能项目中,我们常常需要将代码封装为函数,或者使用第三方模块来处理数据、训练模型等。本节将介绍如何定义函数、导入模块,以及 Python 中常见的标准库。


二、函数的定义与使用

1. 定义函数

使用 def 关键字来定义函数:

def greet(name):print("Hello, " + name)
2. 调用函数
greet("Alice")
3. 带返回值的函数
def add(a, b):return a + bresult = add(3, 5)
print(result)  # 输出:8
4. 参数类型
  • 默认参数

def greet(name="World"):print("Hello, " + name)greet()           # 输出:Hello, World
greet("Python")   # 输出:Hello, Python
  • 可变参数(*args, **kwargs

def print_all(*args):for arg in args:print(arg)print_all(1, 2, 3)

三、模块的导入与使用

Python 模块是以 .py 文件存在的可复用脚本。我们可以导入自己编写的模块或 Python 提供的标准模块。

1. 导入模块的几种方式
import math
print(math.sqrt(16))  # 输出:4.0
from math import sqrt
print(sqrt(25))       # 输出:5.0
import math as m
print(m.pi)           # 输出:3.141592653589793
2. 自定义模块导入

假设有一个文件 mymath.py,内容如下:

# mymath.py
def square(x):return x * x

在主程序中可以导入使用:

import mymath
print(mymath.square(4))  # 输出:16

四、常见标准库简介

Python 标准库提供了很多实用模块,以下是人工智能开发中常见的一些:

模块名作用
math数学运算,如开平方、三角函数等
random随机数生成
datetime日期时间处理
os与操作系统交互(如文件操作)
sys系统相关参数和函数
jsonJSON 格式解析与生成
re正则表达式处理
collections提供更丰富的数据结构,如 Counter, defaultdict

1. math — 数学运算
常用方法
方法功能
math.sqrt(x)计算平方根
math.pow(x, y)计算 x 的 y 次幂
math.sin(x) / math.cos(x) / math.tan(x)三角函数,参数为弧度
math.factorial(n)计算阶乘(n 必须为非负整数)
math.ceil(x)向上取整
math.floor(x)向下取整
math.piπ 常量
示例
import mathprint(math.sqrt(16))      # 输出:4.0
print(math.pow(2, 3))    # 输出:8.0
print(math.sin(math.pi/2))  # 输出:1.0
print(math.factorial(5)) # 输出:120
print(math.ceil(3.2))    # 输出:4
print(math.floor(3.8))   # 输出:3
print(math.pi)           # 输出:3.141592653589793

2. random — 随机数生成
常用方法
方法功能
random.random()返回 0 到 1 之间的随机浮点数
random.randint(a, b)返回区间 [a, b] 的随机整数
random.choice(seq)从序列中随机选取一个元素
random.shuffle(list)将列表随机打乱(原地修改)
random.sample(population, k)从总体中随机抽取 k 个不重复元素
示例
import randomprint(random.random())          # 输出:0 到 1 之间的随机数
print(random.randint(1, 10))   # 输出:1 到 10 的随机整数
print(random.choice(['A', 'B', 'C']))  # 随机选一个字符
lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst)                     # 输出打乱后的列表
print(random.sample(lst, 3))   # 从列表随机抽取3个元素

3. datetime — 日期时间处理
常用类和方法
类/方法功能
datetime.datetime.now()获取当前日期和时间
datetime.date.today()获取当前日期
datetime.datetime.strptime(date_string, format)字符串转时间对象
datetime.datetime.strftime(format)时间对象转字符串
timedelta(days=, hours=, minutes=)时间间隔,用于加减时间
示例
from datetime import datetime, date, timedeltanow = datetime.now()
print(now)                    # 当前时间,格式如 2025-06-06 14:30:00.123456today = date.today()
print(today)                  # 当前日期,格式如 2025-06-06# 字符串转时间对象
dt = datetime.strptime("2025-06-06 12:00", "%Y-%m-%d %H:%M")
print(dt)# 时间对象转字符串
print(now.strftime("%Y/%m/%d %H:%M:%S"))# 计算未来时间
future = now + timedelta(days=7)
print(future)

4. os — 操作系统相关功能
常用方法
方法功能
os.getcwd()获取当前工作目录
os.listdir(path)列出指定目录下的文件和文件夹
os.mkdir(path)创建新目录
os.remove(path)删除文件
os.rename(src, dst)重命名文件或目录
os.path.exists(path)判断路径是否存在
os.path.join(path1, path2, ...)拼接路径,适应不同操作系统
示例
import osprint(os.getcwd())          # 输出当前目录路径
print(os.listdir('.'))      # 列出当前目录文件和文件夹if not os.path.exists('test_dir'):os.mkdir('test_dir')   # 创建新目录os.rename('test_dir', 'new_dir')  # 重命名目录# 删除文件示例(请确保文件存在)
# os.remove('some_file.txt')path = os.path.join('new_dir', 'file.txt')
print(path)                # 输出类似 new_dir/file.txt

5. json — JSON 数据解析与生成
常用方法
方法功能
json.dumps(obj)将 Python 对象编码成 JSON 字符串
json.loads(json_str)将 JSON 字符串解码成 Python 对象
json.dump(obj, file)将 Python 对象写入文件(JSON 格式)
json.load(file)从文件读取 JSON 并转换为 Python 对象
示例
import jsondata = {"name": "Alice", "age": 25, "scores": [90, 85, 88]}# 转成 JSON 字符串
json_str = json.dumps(data)
print(json_str)# 从 JSON 字符串解析
data2 = json.loads(json_str)
print(data2['name'])# 写入文件
with open('data.json', 'w') as f:json.dump(data, f)# 从文件读取
with open('data.json', 'r') as f:content = json.load(f)print(content)

6. re — 正则表达式
常用函数
函数功能
re.match(pattern, string)从字符串开头匹配正则表达式
re.search(pattern, string)在字符串中搜索匹配的第一个位置
re.findall(pattern, string)返回所有匹配的字符串列表
re.sub(pattern, repl, string)替换匹配字符串
示例
import retext = "My phone number is 123-456-7890."# 搜索电话号码
match = re.search(r'\d{3}-\d{3}-\d{4}', text)
if match:print("Found phone number:", match.group())# 查找所有数字
numbers = re.findall(r'\d+', text)
print(numbers)  # ['123', '456', '7890']# 替换数字为 '*'
new_text = re.sub(r'\d', '*', text)
print(new_text)  # My phone number is ***-***-****

7. collections — 额外的数据结构
常用类
功能
Counter计数器,统计元素出现次数
defaultdict带默认值的字典
namedtuple命名元组,类似结构体
deque双端队列,支持高效的头尾插入删除
示例
from collections import Counter, defaultdict, namedtuple, deque# Counter 统计字符出现频率
c = Counter("abracadabra")
print(c)  # Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})# defaultdict,访问不存在的键返回默认值
dd = defaultdict(int)
dd['key'] += 1
print(dd['key'])  # 输出:1# namedtuple 定义简单类
Point = namedtuple('Point', ['x', 'y'])
p = Point(10, 20)
print(p.x, p.y)# deque 双端队列
d = deque([1, 2, 3])
d.appendleft(0)  # 左端插入
d.append(4)      # 右端插入
print(d)         # deque([0, 1, 2, 3, 4])

五、小结

本节内容包括:

  • 如何定义和调用函数(包括返回值、默认参数、可变参数)

  • 模块的导入与使用方式(标准模块、自定义模块)

  • Python 中常见的标准库及其用途

掌握函数和模块有助于你写出结构清晰、可维护的代码。

相关文章:

  • Python数学可视化:3D参数曲面与隐式曲面绘制技术
  • 【SpringBoot自动化部署】
  • Rust 通用代码生成器:莲花,红莲尝鲜版三十六,图片初始化功能介绍
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • 五子棋测试用例
  • LRU 和 DiskLRU实现相册缓存器
  • Python计算字符串距离算法库之textdistance使用详解
  • 【2025】win11安装JDK11
  • 2025年- H73-Lc181--22.括号生成(回溯,组合)--Java版
  • intelrealsense深度相机产品介绍
  • Linux(线程控制)
  • 安卓基础(ProGuard vs R8)
  • 『React』Fragment的用法及简写形式
  • React - 组件通信
  • 使用React+ant Table 实现 表格无限循环滚动播放
  • 自托管图书搜索引擎Bookologia
  • next,react封装axios,http请求
  • react 常见的闭包陷阱深入解析
  • 2025 cs144 Lab Checkpoint 3: TCP Receiver
  • React 列表 Keys
  • 国外做的比较的ppt网站有哪些/百度竞价是什么工作
  • wordpress菜单子页面/seo门户网价格是多少钱
  • 大宗商品一览表/seo的工作内容
  • 网站制作需要多少费用/seo是什么意思怎么解决
  • 网站智能云/长沙网络营销顾问
  • html制作一个个人主页网站/免费sem工具