【无标题】ajiks

当然可以!以下是使用Python和Tkinter库编写的代码,实现了你的需求:

 

```python

import random

import tkinter as tk

from tkinter import messagebox

import pandas as pd

 

# 读取Excel文件

df = pd.read_excel('data.xlsx')

 

# 创建主窗口

window = tk.Tk()

window.title("随机选择")

window.geometry("400x300")

 

# 随机选择一行

def select_row():

    selected_row = random.choice(df.iloc[:, 0])

    selected_data = df[df.iloc[:, 0] == selected_row]

    selected_text.set(selected_row)

    create_buttons(selected_data)

 

# 检查答案

def check_answer(answer):

    selected_row = selected_text.get()

    correct_answer = df[df.iloc[:, 0] == selected_row].iloc[:, 1].values[0]

    if answer == correct_answer:

        messagebox.showinfo("回答正确", "恭喜你,回答正确!")

    else:

        messagebox.showinfo("回答错误", f"回答错误!正确答案是:{correct_answer}")

 

# 创建按钮

def create_buttons(selected_data):

    selected_index = selected_data.index[0]

    options = df[df.index != selected_index].sample(n=2).iloc[:, 1].tolist()

    options.append(selected_data.iloc[:, 1].values[0])

    random.shuffle(options)

 

    for widget in window.winfo_children():

        if isinstance(widget, tk.Button):

            widget.destroy()

 

    for i, option in enumerate(options):

        button = tk.Button(window, text=option, width=20, height=2, command=lambda ans=option: check_answer(ans))

        button.pack(pady=10)

 

# 显示选择的行

selected_text = tk.StringVar()

selected_label = tk.Label(window, textvariable=selected_text, font=("Arial", 16), width=30, height=2)

selected_label.pack()

 

# 选择按钮

select_button = tk.Button(window, text="随机选择一行", width=20, height=2, command=select_row)

select_button.pack()

 

# 运行主循环

window.mainloop()

```

 

请确保将代码中的`data.xlsx`替换为你的Excel文件的路径。运行代码后,会弹出一个可视化界面,点击"随机选择一行"按钮会在界面上显示随机选择的一行数据,并创建三个按钮,其中一个是正确答案。如果选择了正确的按钮,会弹出提示框告知回答正确。如果选择了错误的按钮,会弹出提示框告知正确答案。

 

希望这能满足你的需求!如果有任何问题,请随时向我提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值