您是否作为一个教育工作者,想要随机抽取学生,随机抽取试题,并且回答完后可以显示答案。增加提问的互动性呢。
(小工具,帮助您,玩转课堂)
import PySimpleGUI as sg import pandas as pd import random # 读取excel文件 def read_excel(file_path): df = pd.read_excel(file_path) return df # 随机选择人员 def select_person(df): persons = df['姓名'].tolist() return random.choices(persons) # 随机选择题目 def select_question(df): questions = df['题目'].tolist() return random.choice(questions) # 获取题目对应答案 def get_answer(df, question): answer = df[df['题目'] == question]['答案'] return answer # 界面布局 layout = [ [sg.Text('选择文件'), sg.Input(), sg.FileBrowse()], [sg.Button('文件选择完毕'), sg.Button('选择人员', key='-PERSON-'), sg.Text(size=(40, 1), font=('Arial', 20), key='-PERSON_OUTPUT-')], [], [sg.Button('选择习题', key='-QUESTION-'), sg.Text(size=(40, 8), font=('Arial', 25), key='-QUESTION_OUTPUT-')], [], [sg.Button('显示答案', key='-ANSWER-'), sg.Text(size=(40, 5), font=('Arial', 25), key='-ANSWER_OUTPUT-')], [], [sg.Exit(), sg.Button('重置')] ] window = sg.Window('谁是幸运儿', layout, resizable=True) while True: event, values = window.read() if event == '文件选择完毕': # 读取 excel 文件 file_path = values[0] df = read_excel(file_path) if event in (sg.WINDOW_CLOSED, 'Exit'): break elif event == '-PERSON-': person = select_person(df) window['-PERSON_OUTPUT-'].update(person) elif event == '-QUESTION-': question = select_question(df) window['-QUESTION_OUTPUT-'].update(question) elif event == '-ANSWER-': answer = get_answer(df, question) window['-ANSWER_OUTPUT-'].update(answer) elif event == '重置': window['-PERSON_OUTPUT-'].update('') window['-QUESTION_OUTPUT-'].update('') window['-ANSWER_OUTPUT-'].update('') window.close()