2024年大数据最全基于Tkinter实现一个垃圾分类答题软件_tkinter 作品(1)

(‘家庭盆栽废弃的树叶是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘碱性电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘胶卷属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘旧凉席属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘旧图书属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘空的灭火器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘老旧电视机属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘落发属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没用完的铅笔属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没有泡过的茶叶属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘哪一类可进行资源再生利用?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘苹果手机电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘破碎的碗碟属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘染发剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘杀虫剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘水果硬糖属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘水银温度计属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘撕掉了的旧照片,应该丢到哪个垃圾桶内?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘塑料筷子属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘塑料玩具是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘糖果包装纸属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘西瓜籽属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
]


### 3.4创建组件


        前面我们分析了本次项目的布局情况,需要1个Label便签、4个单选按钮、1个下一题按钮,现在就开始将它们放置在主窗口中,从题库中随机抽取10道题目并显示第一道题目。



导入本次项目用到的库

import tkinter
from tkinter import *
from tkinter.messagebox import *
import random

准备一个题库列表

object_list = [
(‘包了口香糖的纸巾属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘保鲜膜属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘变质的香肠属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘槟榔渣属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘剥掉的蛋壳属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘菜刀属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘茶叶渣应扔进哪个垃圾桶?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘吃剩的饼干渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘抽完烟的烟蒂是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘刀片属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘掉在地上的树叶是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘废弃的食用油属于?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘甘蔗渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘过期的化妆品是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘过期的猫粮属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘包装药片的铝箔属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘喝茶剩下的茶叶渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘花生壳属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘坏掉的电脑属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘灰色塑料袋属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘回形针属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘鸡骨头属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘鸡毛属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘家庭盆栽废弃的树叶是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘碱性电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘胶卷属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘旧凉席属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘旧图书属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘空的灭火器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘老旧电视机属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘落发属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没用完的铅笔属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没有泡过的茶叶属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘哪一类可进行资源再生利用?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘苹果手机电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘破碎的碗碟属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘染发剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘杀虫剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘水果硬糖属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘水银温度计属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘撕掉了的旧照片,应该丢到哪个垃圾桶内?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘塑料筷子属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘塑料玩具是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘糖果包装纸属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘西瓜籽属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
]

if name == ‘main’:
root = tkinter.Tk() # 创建tkinter对象
root.title(‘垃圾分类答题考试’) # 设置标题
root.geometry(“500x200+500+300”) # 设置页面的位置和长宽
# 从题库中随机抽取10个题目作为考试题
values = random.sample(object_list,10)
# 创建一个字符串变量用来记录选项值
s = tkinter.StringVar()
s.set(‘E’) # 设置初始值为’E’,初始没选中
# 设置初始题号和分值
num = 0
score = 0
label = tkinter.Label(root, text=values[num][0]) # 用来显示题目
label.pack()
# 创建第 1 个 Frame 组件
f1 = Frame(root)
f1.pack()
r1 = tkinter.Radiobutton(f1, variable=s, value=‘A’, text=values[num][1]) # 安装第一个单选按钮
r1.pack()
r2 = tkinter.Radiobutton(f1, variable=s, value=‘B’, text=values[num][2]) # 安装第二个单选按钮
r2.pack()
r3 = tkinter.Radiobutton(f1, variable=s, value=‘C’, text=values[num][3]) # 安装第三个单选按钮
r3.pack()
r4 = tkinter.Radiobutton(f1, variable=s, value=‘D’, text=values[num][4]) # 安装第四个单选按钮
r4.pack()
# 创建第 2 个 Frame 组件
f2 = Frame(root)
f2.pack()
# 创建下一题的按钮
Button(f2, text=‘下一题’).pack(side=LEFT)
# 默认显示第一道题目

label["text"] = str(num+1) + '.' + values[num][0]  # 显示题目
# 显示4个选项
r1["text"] = values[num][1]  
r2["text"] = values[num][2]
r3["text"] = values[num][3]
r4["text"] = values[num][4]
root.mainloop() # 让窗口一直显示出来

效果如下:


![13f43f70bf884b75a137b6fbe2e8ffa7.png](https://img-blog.csdnimg.cn/13f43f70bf884b75a137b6fbe2e8ffa7.png)


         现在你点击下一题是没有反应的,因为此时只是实现了页面的布局工作,还没有实现判断对错的功能。


### 3.5编写事件函数


        事件的逻辑是当你点击下一题按钮的时候,程序判断你对本题的选项是否与题库中的答案一致,如果相等,则通过弹窗的形式提示你答对了;如果不相等,则通过弹窗的形式提示你答错了。提示完之后还要紧接着显示下一道题目。每次判断完之后都要检测本题是否已经是最后一道题目,如果是则停止答题,得出本次测试的总得分。



定义一个判断选项正确性的函数

def main(values):
# 全局引用num和score变量
global num
global score

# 如果选项和答案相等则答对了
if s.get() == values[num][5]:
    showinfo("恭喜", "恭喜你答对了!")  # 提示你答对了
    score += 10  # 得分加10分
# 如果选项和答案不相等则答错了
else:
    showinfo("遗憾", "遗憾你答错了!")  # 提示你答错了
num = num + 1  # 记录题号
# 如果题号已经大于等于题目的总长度则需要进行结束并统计总分数
if num >= len(values):
    showinfo("结果", f"全部题目做完了!\n您的最终得分为{score}分!")  # 提示题目做完了,总结出你的得分
    root.quit()  # 程序退出
    return

# 显示下一题
label["text"] = str(num+1) + '.' + values[num][0] # 显示题目
# 显示4个选项
r1["text"] = values[num][1]
r2["text"] = values[num][2]
r3["text"] = values[num][3]
r4["text"] = values[num][4]
s.set('E')  # 设置初始值为'E',初始没选中

 同时还需要在下一题按钮那添加该事件函数



Button(f2, text=‘下一题’, command=lambda:main(values)).pack(side=LEFT)


到这里一个简易版的答题程序已经实现,效果如前面所示。


## 四、总结


        本次使用了Python中的tkinter库实现了一个简易的垃圾分类答题程序,其中的题库和各种参数大家可以发挥自己的创意,自行进行修改,基于此源码的基础上创作出你的作品!


## 源代码



导入本次项目用到的库

import tkinter
from tkinter import *
from tkinter.messagebox import *
import random

准备一个题库列表

object_list = [
(‘包了口香糖的纸巾属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘保鲜膜属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘变质的香肠属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘槟榔渣属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘剥掉的蛋壳属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘菜刀属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘茶叶渣应扔进哪个垃圾桶?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘吃剩的饼干渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘抽完烟的烟蒂是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘刀片属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘掉在地上的树叶是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘废弃的食用油属于?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘甘蔗渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘过期的化妆品是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘过期的猫粮属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘包装药片的铝箔属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘喝茶剩下的茶叶渣是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘花生壳属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘坏掉的电脑属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘灰色塑料袋属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘回形针属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘鸡骨头属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘鸡毛属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘家庭盆栽废弃的树叶是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘碱性电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘胶卷属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘旧凉席属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘旧图书属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘空的灭火器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘老旧电视机属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘落发属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没用完的铅笔属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘没有泡过的茶叶属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘哪一类可进行资源再生利用?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘苹果手机电池属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘破碎的碗碟属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘染发剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘杀虫剂的容器属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘水果硬糖属于哪一类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
(‘水银温度计属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘撕掉了的旧照片,应该丢到哪个垃圾桶内?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘B’),
(‘塑料筷子属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘塑料玩具是什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘C’),
(‘糖果包装纸属于什么垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘A’),
(‘西瓜籽属于哪类垃圾?’, ‘其他垃圾’, ‘有害垃圾’, ‘可回收物’, ‘厨余垃圾’, ‘D’),
]

定义一个判断选项正确性的函数

def main(values):
# 全局引用num和score变量
global num
global score

# 如果选项和答案相等则答对了
if s.get() == values[num][5]:
    showinfo("恭喜", "恭喜你答对了!")  # 提示你答对了
    score += 10  # 得分加10分
# 如果选项和答案不相等则答错了
else:
    showinfo("遗憾", "遗憾你答错了!")  # 提示你答错了
num = num + 1  # 记录题号
# 如果题号已经大于等于题目的总长度则需要进行结束并统计总分数
if num >= len(values):
    showinfo("结果", f"全部题目做完了!\n您的最终得分为{score}分!")  # 提示题目做完了,总结出你的得分
    root.quit()  # 程序退出
    return

# 显示下一题
label["text"] = str(num+1) + '.' + values[num][0] # 显示题目
# 显示4个选项
r1["text"] = values[num][1]
r2["text"] = values[num][2]
r3["text"] = values[num][3]
r4["text"] = values[num][4]
s.set('E')  # 设置初始值为'E',初始没选中

if name == ‘main’:
root = tkinter.Tk() # 创建tkinter对象
root.title(‘垃圾分类答题考试’) # 设置标题
root.geometry(“500x200+500+300”) # 设置页面的位置和长宽
# 从题库中随机抽取10个题目作为考试题
values = random.sample(object_list,10)
# 创建一个字符串变量用来记录选项值
s = tkinter.StringVar()
s.set(‘E’) # 设置初始值为’E’,初始没选中
# 设置初始题号和分值
num = 0
score = 0
label = tkinter.Label(root, text=values[num][0]) # 用来显示题目
label.pack()
# 创建第 1 个 Frame 组件
f1 = Frame(root)
f1.pack()
r1 = tkinter.Radiobutton(f1, variable=s, value=‘A’, text=values[num][1]) # 安装第一个单选按钮
r1.pack()
r2 = tkinter.Radiobutton(f1, variable=s, value=‘B’, text=values[num][2]) # 安装第二个单选按钮
r2.pack()
r3 = tkinter.Radiobutton(f1, variable=s, value=‘C’, text=values[num][3]) # 安装第三个单选按钮
r3.pack()
r4 = tkinter.Radiobutton(f1, variable=s, value=‘D’, text=values[num][4]) # 安装第四个单选按钮
r4.pack()
# 创建第 2 个 Frame 组件
f2 = Frame(root)
f2.pack()
# 创建下一题的按钮
Button(f2, text=‘下一题’, command=lambda:main(values)).pack(side=LEFT)
# 默认显示第一道题目

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

g-c2JkiwrL-1714648159499)]
[外链图片转存中…(img-9pK3HNzD-1714648159500)]
[外链图片转存中…(img-8toIP6z2-1714648159500)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现一个模拟考试系统,用户可以选择顺序或者随机的功能。系统可以根据用户选择的模式展示目,并记录用户的情况。顺序功能:用户可以选择顺序模式,在界面上逐个展示目,用户按照顺序回每个目。系统会记录用户的顺序和情况。随机功能:用户可以选择随机模式,系统会随机展示目,用户可以按任意顺序回目。系统会记录用户的顺序和情况。记录:系统会记录用户的情况,包括用户选择的案、正确案等信息。用户可以随时查看自己的记录。自动评分:系统可以根据用户的情况自动评分,给出结果和得分情况。用户可以及时了解自己的情况。提示功能:系统可以根据用户的情况给出相应的提示,帮助用户更好地理解目和知识点。用户交互:系统可以与用户交互,提供友好的提示和指导,确保用户操作顺利,并且可以根据用户反馈不断优化系统。通过实现顺序和随机功能,模拟考试系统可以提供不同的体验,让用户可以根据自己的需求选择合适的方式。这样的系统可以帮助用户更好地备战考试,提高学习效率,提供个性化的学习体验。可以帮助用户更好理解目。根据用户反馈不断优化系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值