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

07_模块和包

第7课:模块和包

课程目标

  • 理解模块和包的概念
  • 掌握模块的导入和使用方法
  • 学习如何创建自己的模块和包

1. 模块基础

模块是一个包含Python代码的文件,可以被其他程序导入和使用。

2. 导入模块

# 导入整个模块
import math
print(math.pi)
print(math.sqrt(16))# 导入特定函数
from math import sqrt, pi
print(pi)
print(sqrt(25))# 给模块起别名
import math as m
print(m.pi)

3. 常用内置模块

3.1 math模块

import mathprint(f"π: {math.pi}")
print(f"平方根: {math.sqrt(16)}")
print(f"幂运算: {math.pow(2, 3)}")
print(f"向上取整: {math.ceil(3.7)}")

3.2 random模块

import randomprint(f"随机整数(1-10): {random.randint(1, 10)}")
print(f"随机浮点数(0-1): {random.random():.3f}")fruits = ["苹果", "香蕉", "橙子"]
print(f"随机水果: {random.choice(fruits)}")

3.3 datetime模块

from datetime import datetime, timedeltanow = datetime.now()
print(f"当前时间: {now}")
print(f"格式化时间: {now.strftime('%Y-%m-%d %H:%M:%S')}")future_time = now + timedelta(days=7)
print(f"7天后: {future_time}")

4. 创建自己的模块

# calculator.py
def add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:raise ValueError("除数不能为0")return a / b# 使用自定义模块
import calculator
print(calculator.add(10, 5))

5. 练习项目

项目:个人工具包

# tools/text_tools.py
def count_characters(text):return len(text)def count_words(text):return len(text.split())def remove_spaces(text):return " ".join(text.split())# tools/math_tools.py
def is_prime(n):if n < 2:return Falsefor i in range(2, int(n ** 0.5) + 1):if n % i == 0:return Falsereturn Truedef fibonacci(n):if n <= 0:return []elif n == 1:return [0]elif n == 2:return [0, 1]fib = [0, 1]for i in range(2, n):fib.append(fib[i-1] + fib[i-2])return fibdef main():print("=== 个人工具包演示 ===")sample_text = "hello world. this is a test."print(f"原文: {sample_text}")print(f"字符数: {count_characters(sample_text)}")print(f"单词数: {count_words(sample_text)}")print(f"7是质数: {is_prime(7)}")print(f"斐波那契数列(10): {fibonacci(10)}")if __name__ == "__main__":main()

6. 总结

本节课我们学习了:

  • 模块和包的基本概念
  • 模块的导入和使用方法
  • 常用内置模块
  • 如何创建自己的模块和包

7. 下节课预告

下节课我们将学习:

  • 正则表达式基础
  • 常用内置模块进阶
  • 第三方库的安装和使用
http://www.dtcms.com/a/347224.html

相关文章:

  • UNet改进(34):ACmix-UNet混合架构的PyTorch
  • 动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
  • 避开MES实施的“坑”:详解需求、开发、上线决胜点
  • 自动化知识工作AI代理的工程与产品实现
  • Node.js 和 Express 面试问题总结
  • Ubuntu通过 systemd 管理 gpt4free,需为其创建 g4f.service 文件,定义服务的启动、停止等操作(未实践)
  • Java基础 8.23
  • 【8位数取中间4位数】2022-10-23
  • LangChain4J-基础(整合Spring、RAG、MCP、向量数据库、提示词、流式输出)
  • QT-常用类
  • 【GPT入门】第57课 详解 LLamaFactory 与 XTuner 实现大模型多卡分布式训练的方案与实践
  • calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具
  • 【Linux系统】命名管道与共享内存
  • 结构化数据与非结构化数据的区别、特点和应用场景
  • Games 101 第四讲 Transformation Cont(视图变换和投影变换)
  • Java22 stream 新特性 窗口算子:GathererOp 和 GatherSink
  • Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
  • 权限管理模块
  • 用 Ansible 优雅部署 Kubernetes 1.33.3(RedHat 10)
  • 第一章:启航篇 —— 新晋工程师的生存与扎根 (1)
  • TensorFlow 深度学习 开发环境搭建
  • 通过Java连接并操作MySQL数据库
  • 多智能体篇:智能体的“语言”——ACL协议与消息队列实现
  • 高斯分布的KL散度计算
  • STM32学习笔记19-FLASH
  • 标准浪涌测试波形对比解析
  • linux内核 - vmalloc 介绍
  • Unity 字符串输出文字一样但Equals 判断为false
  • 图论与最短路学习笔记
  • CH2 线性表