2015-03-13 143 views
-2

我有這個問題一段時間,在我的測驗不起作用的地方,即使代碼在那裏,某些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") 
+2

這聽起來像你要求我們爲你做功課。你有關於你希望我們回答的這個問題的具體問題嗎? – 2015-03-13 13:44:06

+0

你爲什麼使用'global'? – Gx1sptDTDa 2015-03-13 14:01:36

+0

@BryanOakley不,我不做我的功課。這是我正在寫的一個程序,我正在從我的老師那裏得到幫助。我正在嘗試做一個測驗。 – 2015-03-13 15:39:23

回答

0

想到了順

你測驗的OOP這一翻譯應該是一類。

避免MVC方法,保持簡單的類直接處理UI,數據和過程。

構造閱讀問題的文件,並更新內部數據表示(可能是返修過),並啓動根Tk的實例

創建顯示專用的問題(一個標籤)和區域的方法答案(條目) 添加一個「OK」按鈕或綁定的輸入插件的鍵開始致力於答案的控制和正確答案

的顯示方法創建此方法

添加一種用於Tkinter主循環的方法

在主腳本實例化的QUIZZ的,調用方法「顯示問題」,然後呼籲主循環()方法

我們正在等待你的代碼;-)協助

提示:1:身高:

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

2:忘記在你的代碼中的全局指令..非感覺這裏 3:文件閱讀是rought,你的文件的格式不優化。 不要在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 

的每一行,你只是追加一個可能的答案中可能的答案

準備運行你的大腦的列表...走。 ^^