2017-04-14 4 views
-1

Ich lerne mit Python umzugehen, eigentlich habe ich mich auf Tkinter konzentriert. Ich wollte also eine Schnittstelle mit Fragen und Checklisten programmieren. Wenn Sie eine Antwort wählen, sollten Sie Punkte erhalten, und wenn Sie eine Anzahl von Punkten haben, sollten Sie ein Ergebnis erhalten. Ich denke, es ist eine Art Test.Wie man Gruppen für verschiedene Variablen definiert

Für dieses Projekt möchte ich meine Checklisten-Objekte gruppieren, zum Beispiel in Gruppe a sind die Variablen 1,5 und 8, und Python sollte die Zeiten drucken, die ich für eine Gruppe gewählt habe.

Mein Problem ist, dass ich nicht weiß, wie ich diese Gruppen definieren kann. Ich habe geglaubt, dass ich etwas schreiben könnte wie "a = var1, var5, var8", aber es funktioniert nicht.

Vielen Dank für Ihre Hilfe! Ich hoffe, dass mein Englisch verständlich ist. :) LoveSpock

Hier ist mein Code. Wenn es läuft, schätze ich die Variablennamen in Namen, die Sinn machen, das sind Testnamen. Außerdem ist es nicht fertig. :)

*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

Bitte posten Sie eine [mcve]. – YiFei

+0

SO kann Ihnen besser helfen, wenn Sie uns mit dem versorgen, was Sie versucht haben. Was Sie hier fragen, ist, dass jemand Code für Sie schreibt. Zeigen Sie uns, was Sie wissen und was Sie versucht haben, beschreiben Sie das Problem und lassen Sie uns dann Ihr Wissen aufbauen. – pstatix

+0

Möchten Sie vielleicht stattdessen einen Radiobutton? Wenn Sie den Benutzer bitten, eine Antwort aus der Liste auszuwählen, ist Radiobutton sinnvoller. Dann erstellen Sie eine einzelne Variable, die an jeden Radiobutton übergeben wird. Dann geben Sie für jeden Radiobutton einen anderen Wert an. – FamousJameous

Antwort

0

für Variablen innerhalb eines anderen zu speichern, ist es nicht unbedingt eine saubere Art und Weise, es zu tun.

Ich würde vorschlagen, eval zu verwenden, wobei Sie die Variablen, auf die Sie zugreifen möchten, als Strings in einer Liste speichern und dann den Inhalt dieser Zeichenfolge auswerten. Dies würde in etwa so aussehen:

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

var_list = ["var1", "var3"] 

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

Drucke:

dogs 
hens 

Hoffentlich hilft!

Beachten Sie, dass eval normalerweise in solchen Szenarien verwendet werden sollte und nicht in Szenarien, in denen Sie eine Benutzereingabe vornehmen, da ihr Code möglicherweise in Ihrem Programm ausgeführt werden kann. Dies zu vermeiden, sollte jedoch eval hier gut sein.

+0

Hallo, danke für deine Hilfe. Ich habe versucht, es zu benutzen, aber es ist nicht gelaufen. Ich denke, ich habe etwas falsch gemacht. Ich habe meine Frage bearbeitet, jetzt steht mein Code drin. Vielleicht willst du es dir anschauen. Vielen Dank! – LoveSpock

Verwandte Themen