2017-04-14 58 views
-1

我正在學習使用Python進行處理,實際上我將重點放在了Tkinter上。所以我想用代碼和清單編寫一個界面。如果你選擇一個答案,你應該得到分數,如果你有一個分數,你應該得到一個結果。我認爲這是一種測試。如何爲不同變量定義組

對於這個項目我想分組我的清單對象,例如在組a中是變量1,5和8,Python應該打印我選擇一個組的時間。

我的問題是,我不知道如何定義該組。我相信我可以寫一些類似「a = var1,var5,var8」的東西,但它不起作用。

謝謝你的幫助!我希望我的英語可以理解。 :) LoveSpock

這是我的代碼。如果它運行,我有可能使名稱中的變量名稱有意義,這是測試名稱。另外它還沒有準備好。 :)

*from Tkinter import * 
import sys 
master = Tk() 
var = IntVar() 
master.geometry('1500x1000') #Abmessung Fenster 
master.title('test') #Tittel Fenster 
def create_window(): #Definion und Festlegung neues Fenster 
    toplevel = Toplevel() 
    toplevel.title('result') 
    toplevel.geometry('1500x1000') 
    toplevel.focus_set() 
def var_states(): #Zeigt wie oft angeklickt wurde 
    print('%s %s %s %s' % (var1.get(), var2.get(), var3.get(), var4.get())) 

a#Erzeugung Checkliste---------------------------------------------------------------- 
Label(master, text='Choose one answer', font=('times', 30)).grid(row=0, sticky=W) 
var1 = IntVar() 
Checkbutton(master, text='male', variable=var1).grid(row=1, sticky=W) 
var2 = IntVar() 
Checkbutton(master, text='female', variable=var2).grid(row=2, sticky=W) 
var3 = IntVar() 
Checkbutton(master, text='male1', variable=var3).grid(row=3, sticky=W) 
var4 = IntVar() 
Checkbutton(master, text='female1', variable=var4).grid(row=4, sticky=W) 
a#------------------------------------------------------------------------------------ 
a = var1 
b = var2 
c = var3 
d = var4 
Button(master, text='solve', command=var_states).grid(row=5, sticky=W, pady=4) #Button fuer 'zeigt wie oft angeklickt wurde' 
Button(master, text='forward', command=create_window).grid(row=6, sticky=W, pady=4)#Button neues Fenster 
master.mainloop()* 
+0

請發表[mcve]。 – YiFei

+0

如果您向我們提供您所嘗試過的東西,那麼它可以幫助您更好地完成工作。你在這裏問的是有人爲你寫代碼。告訴我們你知道什麼,你嘗試過什麼,描述問題,然後讓我們幫助你建立你的知識。 – pstatix

+0

你也許想要一個Radiobutton?如果您要求用戶從列表中選擇一個答案,Radiobutton更有意義。然後你創建一個變量傳遞給每個'Radiobutton'。然後你爲每個'Radiobutton'指定一個不同的'value'。 – FamousJameous

回答

0

將變量存儲在另一箇中,不一定有乾淨的方法來做到這一點。

我會建議使用eval,從而將希望作爲字符串訪問的變量存儲在列表中,然後評估該字符串的內容。這看起來是這樣的:

var1 = "dogs" 
var2 = "cats" 
var3 = "hens" 

var_list = ["var1", "var3"] 

for variable in var_list: 
    print(eval(variable)) 

打印:

dogs 
hens 

希望這有助於!

請注意,通常應將eval用於此類場景,而不是用於輸入用戶輸入的場景,因爲它們的代碼可能會在程序中運行。但是,避免這種情況,eval應該在這裏很好。

+0

嗨,謝謝你的幫助。我嘗試使用它,但它沒有運行。我覺得我做錯了什麼。我已經編輯了我的問題,現在我的代碼已經存在了。也許你想看看它。謝謝! – LoveSpock