基于Python開發(fā)一個班級互動小程序
這是一個基于Python和Tkinter開發(fā)的班級互動小程序,專為高中教師設(shè)計(jì),通過點(diǎn)擊按鈕隨機(jī)生成趣味懲罰任務(wù),可用于課堂活動或班級游戲。程序界面友好美觀,包含50多種無害且富有創(chuàng)意的懲罰內(nèi)容,如表演才藝、模仿老師說話、做俯臥撐等,既能活躍課堂氣氛又不會傷害學(xué)生自尊心。窗口自動居中顯示,操作簡單直觀,是增強(qiáng)師生互動、營造輕松課堂環(huán)境的實(shí)用工具。
想法是看了這個沙雕動畫,感覺有點(diǎn)意思。
完整代碼
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) # 禁止調(diào)整窗口大小
# 使窗口居中顯示
self.center_window()
# 懲罰內(nèi)容列表(已大幅擴(kuò)展)
self.punishments = [
"唱一首歌曲", "模仿一位老師說話", "做10個俯臥撐", "講一個笑話", "表演一個才藝",
"回答三個同學(xué)的問題", "背誦一首古詩", "模仿一種動物", "說一件自己的糗事", "表演一段舞蹈",
"用方言讀一段課文", "做鬼臉五連拍", "夸獎三位同學(xué)", "分享一個勵志故事", "表演一個電影片段",
"倒背26個英文字母", "用屁股寫自己的名字", "模仿機(jī)器人走路", "說一段繞口令", "模仿名人簽名",
"表演一個廣告", "模仿雕塑不動1分鐘", "用三種語言說'我愛你'", "表演觸電的感覺", "表演中獎后的反應(yīng)",
"表演憋氣1分鐘", "模仿時裝模特走臺步", "表演暈倒", "模仿老人走路", "表演生吃檸檬的表情",
"用五種語氣說'我是最棒的'", "表演被蚊子叮的反應(yīng)", "模仿嬰兒哭", "表演肚子疼", "模仿交警指揮交通",
"表演害羞的樣子", "模仿新聞主播播報(bào)新聞", "表演抽筋", "模仿服務(wù)員點(diǎn)菜", "表演思考者的姿勢",
"模仿外星人", "表演打噴嚏", "模仿動物叫聲", "表演打嗝", "模仿打電話",
"表演害羞", "模仿明星唱歌", "表演打籃球", "模仿老師上課", "表演吃辣條的表情"
]
# 創(chuàng)建界面元素
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):
# 標(biāo)題
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="點(diǎn)擊下方按鈕隨機(jī)生成一個懲罰內(nèi)容",
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)
# 結(jié)果顯示框
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="僅供班級活動使用,請勿用于惡意目的 ? 懲罰內(nèi)容總數(shù): {}".format(len(self.punishments)),
font=("微軟雅黑", 9),
fg="#95a5a6",
bg='#f0f0f0'
)
footer_label.pack(side="bottom", pady=10)
def generate_punishment(self):
# 隨機(jī)選擇一個懲罰
punishment = random.choice(self.punishments)
# 更新顯示
self.result_label.config(text=punishment)
# 播放提示音
self.root.bell()
# 創(chuàng)建主窗口
if __name__ == "__main__":
root = tk.Tk()
app = PunishmentApp(root)
root.mainloop()效果圖如下

到此這篇關(guān)于基于Python開發(fā)一個班級互動小程序的文章就介紹到這了,更多相關(guān)Python班級互動程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python抓取某汽車網(wǎng)數(shù)據(jù)解析html存入excel示例
python抓取某汽車網(wǎng)經(jīng)銷商信息網(wǎng)頁數(shù)據(jù)解析html,這里提供一個示例演示,大家可以根據(jù)需要分析自己網(wǎng)站的數(shù)據(jù)2013-12-12
python文件讀寫操作與linux shell變量命令交互執(zhí)行的方法
這篇文章主要介紹了python文件讀寫操作與linux shell變量命令交互執(zhí)行的方法,涉及對文件操作及Linux shell交互的技巧,需要的朋友可以參考下2015-01-01
Python實(shí)現(xiàn)PDF轉(zhuǎn)MP3的示例代碼
我們平常看到很多文件都是PDF格式,網(wǎng)上的各類書籍多為此格式。有時候不方便閱讀,或者怕費(fèi)眼睛傷頸椎,那么有沒有一種方法可以把它變?yōu)橐纛l,本文就來和大家詳細(xì)講講2023-05-05

