以下是一个基于Python的课堂随机点名工具的实现思路和示例代码,使用深度搜索(Deepseek)的API需要具体申请和配置,这里先用本地数据实现基本功能:
---
### **功能设计**
1. 支持手动输入或文件导入学生名单
2. 随机抽取单个/多个学生
3. 避免重复点名(可选)
4. 可视化界面(命令行或GUI)
---
### **代码实现**
```python
import random
import sys
class RandomRollCall:
def __init__(self):
self.students = []
self.called_students = set() # 记录已点名学生
def add_students(self):
"""手动添加学生"""
n = int(input("请输入学生数量: "))
for i in range(n):
name = input(f"请输入第{i+1}个学生姓名: ")
self.students.append(name)
def show_students(self):
"""显示当前学生列表"""
print("\n当前学生列表:")
for idx, name in enumerate(self.students, 1):
print(f"{idx}. {name}")
def random_call(self, num=1):
"""随机点名核心逻辑"""
if num > len(self.students):
print("错误:抽取数量超过名单人数!")
return []
# 从未点名学生中抽取(可选模式)
available = list(set(self.students) - self.called_students)
if not available:
print("所有学生均已点名!")
return []
selected = random.sample(available, num)
self.called_students.update(selected)
return selected
def run(self):
"""主运行循环"""
print("\n===== 课堂随机点名工具 =====")
self.add_students()
while True:
print("\n操作选项:")
print("1. 显示学生名单")
print("2. 随机点名")
print("3. 退出系统")
choice = input("请输入选项: ")
if choice == '1':
self.show_students()
elif choice == '2':
num = int(input("请输入要抽取的学生数量: "))
result = self.random_call(num)
print("\n本次随机点名的学生是:")
for name in result:
print(f" → {name}")
elif choice == '3':
print("退出系统")
sys.exit()
else:
print("无效输入,请重新选择!")
if __name__ == "__main__":
tool = RandomRollCall()
tool.run()
```
---
### **功能扩展建议**
1. **文件导入/导出**:支持从CSV/Excel导入名单
2. **GUI界面**:使用`tkinter`或PyQt制作可视化界面
3. **高级功能**:
- 按班级/分组点名
- 点名记录保存
- 使用语音合成播报姓名
4. **集成Deepseek**:
```python
# 伪代码示例
import deepseek
def generate_with_deepseek():
prompt = "请生成一个包含个中文姓名的学生名单"
response = deepseek.generate(prompt)
return process_response(response)
```
---
### **使用示例**
```
===== 课堂随机点名工具 =====
请输入学生数量: 5
请输入第1个学生姓名: 张三
请输入第2个学生姓名: 李四
...
操作选项:
1. 显示学生名单
2. 随机点名
3. 退出系统
请输入选项: 2
请输入要抽取的学生数量: 1
本次随机点名的学生是:
→ 王五
```
需要完整实现Deepseek集成版本,需申请API key并安装官方SDK。