Code: Alles auswählen
In [32]: list
Out[32]: <type 'list'>
In [33]: list()
Out[33]: []
Code: Alles auswählen
In [32]: list
Out[32]: <type 'list'>
In [33]: list()
Out[33]: []
Ich würde es komplett anders nennen, da etwas wie ``liste = list()`` oder ``integer = 0`` ziemlich nichtssagend ist und es per ``type(objekt)`` sowieso herausgefunden werden kann. Variablen sollte man nach Bedeutung und nicht nach dem Datentyp benennen.klaus hat geschrieben:Wäre "liste" ok oder soll ich es komplett anders nennen, damit man es überhaupt nicht verwechseln kann?
Code: Alles auswählen
def mklatlist():
liste = []
liste.append(raw_input())
liste.append(raw_input())
liste.append(0)
return liste
def mklat2list(length):
length = int(length)
liste = []
for n in range(length):
print n + 1
liste.append(mklatlist())
return liste
def mklatdic(keys):
dic = {}
keys = keys.split("-")
von = int(keys[0])
bis = int(keys[1])
for key in range(von, bis + 1):
print "Lektion",key
length = raw_input("Länge: ")
value = mklat2list(length)
dic[key] = value
return dic
Mit einem GUI-Toolkit?! Hast ja Tkinter, wxPython, PyGTK und pyQt zur Auswahl.klaus hat geschrieben:1. Wie kann ich des machen, dass ich eine Benutzeroberfläche erstell, die dann die lateinischen Vokabeln anzeigt, ein Feld hat wo man die deutsche Bedeutung eingeben kann und die dann die korrekte Bedeutung anzeigt (bzw. "Richtig" wenn die Vokabel gewusst wurde).
Ja, aber wozu? Du kannst auch dem Skript sagen, dass es bei einem Doppelklick ``latein()`` (oder was auch immer) aufrufen soll.klaus hat geschrieben:2. Kann ich das ganze in eine .exe-Datei umwandeln, so dass man nicht immer erst die Datei mit "Edit with IDLE" öffnen, dann auf "Run Script" klicken und dann die Funktion latein() aufrufen muss.
Am besten so:klaus hat geschrieben:Den Aufruf der Funktion latein() muss ich dann einfach hinter der Definition in das Script reinschreiben, oder?
Code: Alles auswählen
if __name__ == '__main__':
latein()
Code: Alles auswählen
from Tkinter import *
question = "Hallo!"
solve = "Richtig!"
class Iface:
def __init__(self, master):
frame=Frame(master)
frame.pack()
self.question=Label(frame, text=question)
self.question.pack()
self.answer=Entry(frame)
self.answer.pack()
self.solve=Button(frame, text=solve)
self.solve.pack()
self.exit=Button(frame, text="Exit", fg="red", command=frame.quit)
self.exit.pack()
root=Tk()
iface=Iface(root)
root.mainloop()
Ich glaube du hast hier das falsche Forum erwischt und viele Fragen erledigen sich schon, wenn man die Tkinter-Dokumentation lesen würde.klaus hat geschrieben:Ich hab aber noch ein paar Fragen:
1. Wie soll ich das in mein bisheriges Skript einbinden?
2. Wie krieg ich es hin, das der Inhalt von Entry einer Variablen zugewiesen wird, wenn ich Enter drücke?
3. Wie schaff ich es, dass die nächste Frage erst angezeigt wird, wenn man auf den Button klickt?
4. Wie lege ich die Größe von dem Frame fest
Code: Alles auswählen
voklist = [["a ", "b", 0], ["c ", "d", 0], ["e", "f", 0]
def frage(data):
question, solve, stat = data
solution = solve.split(", ")
answer = raw_input(question)
if answer in solution:
print "Richtig!"
data[2] = data[2] + 2
return 1
else:
print "Falsch! Richtig ist: ", solve
data[2] = data[2] + 1
return 0
def quiz():
while 1:
for element in voklist:
correct = frage(element)
counter = counter + 1
if correct == 1:
points = points + 1
print
if __name__ == __main__:
quiz()
Code: Alles auswählen
File "C:\Py4Kids\mylib\tkquiz.py", line 3
def frage(data):
^
SyntaxError: invalid syntax
Code: Alles auswählen
voklist = [["a ", "b", 0], ["c ", "d", 0], ["e", "f", 0]]