Python-Education-Tools 26.2.48
Python Education Tools for Teaching
Requires Python: >=3.8


---

# Python Education Tools (PET)

**Author**: Prof. Luqun Li (李鲁群)
**Email**: [liluqun@gmail.com](mailto:liluqun@gmail.com) | [success@shnu.edu.cn](mailto:success@shnu.edu.cn)
**GitHub**: [https://github.com/liluqun](https://github.com/liluqun)


  * **什么是 PET 工具包？**

    * **Python Education Tools (PET)** 是专为教育和数据分析设计的工具包，旨在简化教学过程，提供数据生成、教材管理、系统信息提取、音频处理等多种功能。
  * **PET 工具包的目标**：

    * 提供 **简化的数据生成** 和 **样本数据创建功能**，便于教学和实验。
    * 提供 **教材案例下载**，让学生能够快速获取教材中的代码和习题。
    * 提供 **系统信息提取功能**，如进程信息、目录结构等，帮助学生更好地理解系统资源。
    * 提供 **音频处理功能**，通过文本转语音功能，增强教学互动。
    * **统计分析与数据可视化功能**，帮助学生进行数据分析。



### **模块安装**

  1. **检查 Python 版本**：

     * 打开终端或命令提示符，输入以下命令：

       ```bash
       python --version
       ```
     * 确保版本为 Python 3.8 或更高。

  2. **安装 PET 工具包**：

     * 输入以下命令安装工具包：

       ```bash
       pip install -U python-education-tools
       ```

  3. **安装可选依赖**：

     * **音频处理功能**：

       ```bash
       pip install -U python-education-tools[audio]
       ```
     * **数据可视化与统计分析功能**：

       ```bash
       pip install -U python-education-tools[viz]
       ```
     * **Web 抓取与处理功能**：

       ```bash
       pip install -U python-education-tools[web]
       ```



**Python Education Tools (PET)** 是一个专为教育与数据分析设计的工具包，旨在简化教学、实验和数据处理过程。该工具包提供了多种教学相关功能，包括数据生成、系统信息提取、教材案例下载和音频处理等，旨在帮助学生和教师更好地进行Python学习和数据分析。

---

## **PET 工具包功能**

### **1. 编程之道**

PET 工具包通过一行 Python 代码，引用古文阐述编程之道，帮助学生理解编程哲学。

```python
import pet.this
```

此模块从中国传统文化角度，引用“心、术、道”三个层次，带领大家体会编程的道理。通过编程之道的学习，帮助学生在编程实践中不断提升技术与思维方式。

---

### **2. 教材案例下载**

PET 提供了教材配套的代码案例，学生可以通过以下命令快速下载教材中的代码：

```python
import pet.textbook1.codes
```
或者在windows终端下输入pet，如：c:>pet 
* 执行该命令后，教材中的代码案例将自动下载到 Windows 用户桌面，目录为 **"Python与数据分析及可视化教学案例"**。
* 快速下载功能帮助学生能够在第一时间访问并使用教学案例，提升学习效率。

---

### **3. 数据集加载与数据生成**

#### **(1) 快速装载数据集**

PET 提供了多种数据集，学生可以通过以下代码加载指定的数据集：

```python
from pet.datasets import factory
factory.load_data(key='iris')
```

* **可选数据集**：`['中国大学', '学科专业分类', '上海师范大学课程表', 'iris', '道德经.txt', '双色球', '2023年上海市二级程序员大赛名单']` 等。
* 通过 **`load_data()`**，你可以快速加载数据集并返回 DataFrame 或文本文件。

#### **(2) 快速生成自定义数据集**

PET 还支持根据自定义模板生成数据。通过以下代码可以生成干净的样本数据或带噪声的数据：

```python
from pet.datasets import factory

# 生成干净的 Series 数据
df = factory.gen_sample_series()

# 生成带噪声的 DataFrame 数据
df = factory.gen_sample_dataframe(sample_order=sample_order, number=40, dst='generated_sample.xlsx', noise=0.1)
```

* 用户可以按照如下规则自行编写任意格式`sample_order`。该数据结构是一个字典，定义了生成数据的规则，字段包括学号、性别、成绩等。

#####  格式为：{XX.YY：[ZZ...],

其中：XX为列名称；YY为列的数据类型，ZZ为列的数据；可选数据类型如下：


1. .iid: 代表产生整数学号（字段名称.类型）
2. .i:代表整数
3. .n: 代表名字
4. .c: 代表类别
5. .dt: 代表日期时间
6. .f: 代表浮点数

如：'考号.i': [151000, 789000],代表：列名为：考号，数据类型为整型，[151000, 789000]为数据范围
##### **示例：`sample_order` 字典格式**

```python
sample_order = {
    '学号.iid': 220151000,  # 学号，生成整数
    '考号.i': [151000, 789000],  # 考号，整数范围
    '姓名.n': '',  # 姓名，生成随机名字或指定名字列表
    '性别.c': ['男', '女'],  # 性别，随机选择
    '报名时间.dt': ['2024-1-1', '2024-03-31'],  # 报名时间，日期范围
    '年龄.i': [18, 34],  # 年龄，整数范围
    '政治面貌.c': ['中共', '群众'],  # 政治面貌，类别选择
    '学校.c': ['清华大学', '北京大学'],  # 学校，选择学校
    '政治成绩.i': [36, 100],  # 政治成绩，整数范围
    '英语成绩.i': [29, 100],  # 英语成绩，整数范围
    '数学成绩.i': [40, 150],  # 数学成绩，整数范围
    '在线时长.f': (1000.3, 9999.55, 2)  # 在线时长，浮点数范围
}
```

---

### **4. 获取系统信息**

PET 工具包还提供了提取系统信息的功能，帮助学生学习如何获取系统的资源使用情况。以下是一些可用的功能：

* 获取目录结构信息：

  ```python
  from pet.datasets import get_directory_info_dataframe
  directory_info = get_directory_info_dataframe()
  print(directory_info.head())
  ```

* 获取进程信息：

  ```python
  from pet.datasets import get_pid_info_dataframe
  pid_info = get_pid_info_dataframe()
  print(pid_info.head())
  ```

* 获取网络流量信息：

  ```python
  from pet.datasets import get_pid_network_info_dataframe
  network_info = get_pid_network_info_dataframe()
  print(network_info.head())
  ```

这些功能可以帮助学生更好地了解操作系统、进程和网络信息，并在实验中进行数据分析。

---

### **5. 音频处理**

PET 工具包内置了文本转语音功能，使得教学过程更加生动、互动。

```python
from pet.util import audio
audio.say("hello, world", echo=True)
```

* **`echo=True`** 参数可以添加回音效果，使语音播放更有趣。

---

## **如何贡献与更新**

PET 工具包会定期进行更新，添加新功能并修复已知问题。如果您有好的建议或遇到问题，欢迎通过邮件与我联系：

* **Email**: [liluqun@gmail.com](mailto:liluqun@gmail.com)
* **GitHub**: [https://github.com/liluqun](https://github.com/liluqun)

---

### **开发团队与支持**

* **教材编写**：李鲁群 李晓丰 郑晓宁 孙璇


---

## **结语**

**Python Education Tools (PET)** 是一个强大的工具包，适合用于教学、实验以及数据分析项目。通过该工具包，学生能够快速获取所需的教学资源、实验数据，并进行有效的学习和分析。

---