【问题标题】:Putting questions into a list and randomly selecting them将问题放入列表并随机选择它们
【发布时间】:2015-03-13 13:40:34
【问题描述】:

我的这个问题已经有一段时间了,我的测验不起作用,即使代码在那里,某些 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")

【问题讨论】:

  • 听起来您要求我们为您做作业。对于这个问题,您有具体的问题希望我们回答吗?
  • 你为什么用global??
  • @BryanOakley 不,我没有做作业。这是针对我正在编写的一个程序,在该程序中我得到了老师的帮助。我正在做一个测验。

标签: python tkinter


【解决方案1】:

考虑 OOP 而不是顺序

你的测验应该是一门课。

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

构造函数读取问题文件并更新您的内部数据表示(这也可能被重做),并启动 Root Tk 实例

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

创建这个方法

为 Tkinter 主循环添加一个方法

在脚本的main中实例化测验,调用“显示问题”方法,然后调用mainloop()方法

我们正在等待您的代码 ;-) 提供帮助

提示:1:首选:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多