将问题放入列表并随机选择

时间:2015-03-13 13:40:35

标签: python tkinter

我有一段时间没有这个问题我的测验无法正常工作,即使代码在那里,某些tkinter窗口也不会关闭。然而,在与老师交谈后,他说可以阅读我的文本文件来获取问题和答案,然后将它们放在一个列表中,这样我就可以随机选择它们显示在窗口中(这样就没问题了)出现两次)。然后,他说你可以在每个问题得到解答后刷新窗口,用不同的答案提出不同的问题(甚至可能是"正确" /"错误"在每个问题之间)。如果有人知道如何做这将是一个巨大的帮助。感谢。

def quiz_easy():

    global question 
    questions = []
    correctanswers = []
    possibleanswer1s = []
    possibleanswer2s = []
    possibleanswer3s = []
    easy_questions = open("sup.txt", "r")

    count = 1
    for line in easy_questions:
        if count == 1:
            questions.append(line.rstrip())
        elif count == 2:
            correctanswers.append(line.rstrip())
        elif count == 3:
            possibleanswer1s.append(line.rstrip())
        elif count == 4:
            possibleanswer2s.append(line.rstrip())
        elif count == 5:
            possibleanswer3s.append(line.rstrip())
        if count == 5:
            count = 1
        else:
            count = count + 1 

    print(questions)
    print (correctanswers)

    randno1 = random.randint(0,len(questions)-1)
    master = Tk()
    text = Text(master)
    text.insert(INSERT, questions[randno1])
    text.insert(END, "?")
    text.pack()
    text.tag_add("here","5.0", "1.4")
    text.tag_add("start", "1.8", "1.13")

1 个答案:

答案 0 :(得分:0)

认为OOP intead of sequencial

你的测验应该是一个班级。

避免使用MVC方法,保持简单,类直接处理UI,数据和进程。

构造函数读取问题文件并更新内部数据表示(也可能会重新编写),然后启动Root Tk实例

创建一个方法来显示问题(标签)和专用于答案的区域(条目) 添加一个按钮" OK"或绑定Entry小部件上的键以启动专用于控制答案和显示正确答案的方法

创建此方法

为Tkinter主循环添加方法

在剧本的主要部分实现quizz,调用方法"显示问题"然后调用mainloop()

的方法

我们正在等待你的代码;-)来协助

提示:1:首选:

import Tkinter as tk  # instead of from Tkinter import * to keep your code explicit.

2:忘记代码中的全局指令..这里没有意义 3:文件读取,文件格式未优化。  在XML paradygm中不要太快   考虑前缀标尺

QUE translate pig in french
COR cochon
ALT proc
ALT truie
ALT verrat
ALT porcelet
ALT cochonet
ALT gorret
ALT nourrin
ALT nourrain
ALT cochette

对于每一行,您只需在可能的答案列表中附加可能的答案

准备好运行你的大脑......去吧。 ^^