基于Python开发一个班级互动小程序

 更新时间:2025年09月11日 09:46:28   作者:封奚泽优  
这篇文章主要为大家详细介绍了一个基于Python和Tkinter开发的班级互动小程序,通过点击按钮随机生成趣味惩罚任务,下面我们就来看看具体实现代码吧

这是一个基于Python和Tkinter开发的班级互动小程序,专为高中教师设计,通过点击按钮随机生成趣味惩罚任务,可用于课堂活动或班级游戏。程序界面友好美观,包含50多种无害且富有创意的惩罚内容,如表演才艺、模仿老师说话、做俯卧撑等,既能活跃课堂气氛又不会伤害学生自尊心。窗口自动居中显示,操作简单直观,是增强师生互动、营造轻松课堂环境的实用工具。

想法是看了这个沙雕动画,感觉有点意思。

完整代码

import tkinter as tk
import random

class PunishmentApp:
    def __init__(self, root):
        self.root = root
        self.root.title("班级惩罚小程序")
        self.root.geometry("600x500")
        self.root.configure(bg='#f0f0f0')
        self.root.resizable(False, False)  # 禁止调整窗口大小

        # 使窗口居中显示
        self.center_window()

        # 惩罚内容列表(已大幅扩展)
        self.punishments = [
            "唱一首歌曲", "模仿一位老师说话", "做10个俯卧撑", "讲一个笑话", "表演一个才艺",
            "回答三个同学的问题", "背诵一首古诗", "模仿一种动物", "说一件自己的糗事", "表演一段舞蹈",
            "用方言读一段课文", "做鬼脸五连拍", "夸奖三位同学", "分享一个励志故事", "表演一个电影片段",
            "倒背26个英文字母", "用屁股写自己的名字", "模仿机器人走路", "说一段绕口令", "模仿名人签名",
            "表演一个广告", "模仿雕塑不动1分钟", "用三种语言说'我爱你'", "表演触电的感觉", "表演中奖后的反应",
            "表演憋气1分钟", "模仿时装模特走台步", "表演晕倒", "模仿老人走路", "表演生吃柠檬的表情",
            "用五种语气说'我是最棒的'", "表演被蚊子叮的反应", "模仿婴儿哭", "表演肚子疼", "模仿交警指挥交通",
            "表演害羞的样子", "模仿新闻主播播报新闻", "表演抽筋", "模仿服务员点菜", "表演思考者的姿势",
            "模仿外星人", "表演打喷嚏", "模仿动物叫声", "表演打嗝", "模仿打电话",
            "表演害羞", "模仿明星唱歌", "表演打篮球", "模仿老师上课", "表演吃辣条的表情"
        ]

        # 创建界面元素
        self.create_widgets()

    def center_window(self):
        """使窗口在屏幕上居中显示"""
        self.root.update_idletasks()
        width = self.root.winfo_width()
        height = self.root.winfo_height()
        x = (self.root.winfo_screenwidth() // 2) - (width // 2)
        y = (self.root.winfo_screenheight() // 2) - (height // 2)
        self.root.geometry('{}x{}+{}+{}'.format(width, height, x, y))

    def create_widgets(self):
        # 标题
        title_label = tk.Label(
            self.root,
            text="班级惩罚小程序",
            font=("微软雅黑", 24, "bold"),
            fg="#2c3e50",
            bg='#f0f0f0'
        )
        title_label.pack(pady=20)

        # 说明文字
        desc_label = tk.Label(
            self.root,
            text="点击下方按钮随机生成一个惩罚内容",
            font=("微软雅黑", 12),
            fg="#7f8c8d",
            bg='#f0f0f0'
        )
        desc_label.pack(pady=5)

        # 按钮
        self.button = tk.Button(
            self.root,
            text="生成惩罚",
            command=self.generate_punishment,
            font=("微软雅黑", 16),
            bg="#3498db",
            fg="white",
            width=15,
            height=2,
            relief="flat",
            cursor="hand2"
        )
        self.button.pack(pady=30)

        # 结果显示框
        self.result_frame = tk.Frame(self.root, bg='#ffffff', relief="solid", bd=1)
        self.result_frame.pack(pady=10, padx=50, fill="both", expand=True)

        self.result_label = tk.Label(
            self.result_frame,
            text="等待生成惩罚...",
            font=("微软雅黑", 18),
            fg="#2c3e50",
            bg="#ffffff",
            wraplength=480,
            justify="center"
        )
        self.result_label.pack(expand=True)

        # 底部信息
        footer_label = tk.Label(
            self.root,
            text="仅供班级活动使用,请勿用于恶意目的 • 惩罚内容总数: {}".format(len(self.punishments)),
            font=("微软雅黑", 9),
            fg="#95a5a6",
            bg='#f0f0f0'
        )
        footer_label.pack(side="bottom", pady=10)

    def generate_punishment(self):
        # 随机选择一个惩罚
        punishment = random.choice(self.punishments)

        # 更新显示
        self.result_label.config(text=punishment)

        # 播放提示音
        self.root.bell()


# 创建主窗口
if __name__ == "__main__":
    root = tk.Tk()
    app = PunishmentApp(root)
    root.mainloop()

效果图如下 

到此这篇关于基于Python开发一个班级互动小程序的文章就介绍到这了,更多相关Python班级互动程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 分布式训练training-operator和pytorch-distributed RANK变量不统一解决

    分布式训练training-operator和pytorch-distributed RANK变量不统一解决

    这篇文章主要介绍了分布式训练training-operator和pytorch-distributed RANK变量不统一问题的解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python中requests小技巧

    python中requests小技巧

    Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。
    2017-05-05
  • python 编码规范整理

    python 编码规范整理

    这篇文章主要介绍了python 编码规范整理,需要的朋友可以参考下
    2018-05-05
  • python 3.6.5 安装配置方法图文教程

    python 3.6.5 安装配置方法图文教程

    这篇文章主要为大家详细介绍了python 3.6.5 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Google colab中从kaggle中接入数据的操作方法

    Google colab中从kaggle中接入数据的操作方法

    这篇文章主要介绍了Google colab中如何从kaggle中接入数据,本文涉及到两大平台内容,所以我默认你已经拥有了,并且使用过了一段时间的google账号和kaggle账号,需要的朋友可以参考下
    2024-03-03
  • Python list列表查找元素详情

    Python list列表查找元素详情

    这篇文章主要介绍了Python list列表查找元素详情,Python 列表(list)提供了 index和count方法,它们都可以用来查找元素,文章围绕主题的相关资料展开详细的内容介绍,具有一定的参考价价值,需要的朋友可以参考一下
    2022-06-06
  • Python while true实现爬虫定时任务

    Python while true实现爬虫定时任务

    这篇文章主要介绍了Python爬虫定时任务简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python中的字符转运算符、字符串处理方式

    python中的字符转运算符、字符串处理方式

    这篇文章主要介绍了python中的字符转运算符、字符串处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 5个Python杀手级的自动化脚本分享

    5个Python杀手级的自动化脚本分享

    Python是一种功能强大的语言,广泛用于自动执行各种任务,只要想通过自动化日常任务来节省时间的人,Python 都能满足您的需求。本文整理了5个Python脚本,希望对大家有所帮助
    2023-01-01
  • Python jieba分词库的使用方法详解

    Python jieba分词库的使用方法详解

    本文详细介绍了jieba中文分词库的使用方法,从基础入门到进阶用法,涵盖了各种分词模式、自定义词典、停用词过滤、词性标注、关键词提取、并行分词等功能,并提供了实战场景和性能优化技巧,帮助用户高效地进行中文文本分析和处理,需要的朋友可以参考下
    2026-03-03

最新评论