Latein Vokabel- und Grammatiktrainer

Code-Stücke können hier veröffentlicht werden.
BlackJack

Beitragvon BlackJack » Mittwoch 27. Juni 2007, 17:41

Wobei immer noch das Problem bleibt, das man `list` nicht als Namen verwenden sollte. Der Name sollte nämlich weder an `None` noch an irgendeine Liste gebunden sein, sondern an die eingebaute Funktion bzw. den Typ `list`:

Code: Alles auswählen

In [32]: list
Out[32]: <type 'list'>

In [33]: list()
Out[33]: []
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Donnerstag 28. Juni 2007, 16:47

ok, dann benenne ich es anders. Wäre "liste" ok oder soll ich es komplett anders nennen, damit man es überhaupt nicht verwechseln kann?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 6. Juli 2007, 17:07

klaus hat geschrieben:Wäre "liste" ok oder soll ich es komplett anders nennen, damit man es überhaupt nicht verwechseln kann?

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Freitag 6. Juli 2007, 17:35

ok, ich habs in voklist umbenannt, weil ne es ja ne Vokabelliste is.
Des Programm funzt jetzt übrigens, also der schwierige Teil der Arbeit ist weg, jetzt kommt der zeitaufwändige, das Vokabelabtippen :( .
120 lektionen mit durchschnittlich ca. 15 Voks macht ungefähr 1800 Vokabeln. Eigentlich hatte ich in den Sommerferien was anderes vor.
Naja, 3 Lektionen hab ich schon, iss doch ein ganz guter Anfang.
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Samstag 7. Juli 2007, 18:58

Ich hab ein Problem: wieso bringt es hier ne Fehlermeldung wenn ich Umlaute eingebe? Des ist übrigens ein Programm, bei dem ich nur noch die Vokabeln eintippen und die Syntax nicht mehr beachten muss. Des is sehr praktisch für meinen Vokabeltrainer und ich hoffe, das ihr mir helfen könnt. Übrigens habe ich Python nach dem Buch "Python4Kids" installiert und es sollte deshalb eig. keine Probleme mir Umlauten und "ß" haben.

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
[/code]
BlackJack

Beitragvon BlackJack » Samstag 7. Juli 2007, 21:04

Was für einen Fehler bekommst Du denn und wo!?
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Sonntag 8. Juli 2007, 10:01

`vokabeln` ist auch ein guter Name für jene Liste :)
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Sonntag 8. Juli 2007, 13:01

Ok, dnn benenne ich es in vokabeln um.
Was fürn Fehler des ist weiß ich nicht, ich schau mal kurz nach und edite des dann. War aber keiner der schonmal bei irgendeinem Programm von mir aufgetreten ist.

edit: ich habs grad nochmal ausprobiert, jetzt hats funktioniert.
Der Fehler ist bis jetzt immer dann aufgetreten, wenn ich "er schmückt" (ornat) eingegeben habe. Ich habs mit "er schmuckt" (also ohne ü) probiert und da gings. Kann des daran liegen, das ich die Funktion bis jetzt immer über "run script" definiert habe, letztes mal (wo der Fehler auftrat) aber die from ... import * Anweisung benutzt habe?
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Samstag 8. September 2007, 17:04

Hi,

Ich bin jetzt fertig mit Vokabeln tippen und hab jetzt noch zwei fragen:
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).

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.

Wäre froh wenn ihr mir helfen könntet.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 8. September 2007, 17:51

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).

Mit einem GUI-Toolkit?! Hast ja Tkinter, wxPython, PyGTK und pyQt zur Auswahl.

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.

Ja, aber wozu? Du kannst auch dem Skript sagen, dass es bei einem Doppelklick ``latein()`` (oder was auch immer) aufrufen soll.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Sonntag 9. September 2007, 12:03

OK, werd ich wohl so machen. Mit Toolkits hab ich mich zwar noch nicht auseinandergesetz, aber ich werds schon hinkriegen.
Den Aufruf der Funktion latein() muss ich dann einfach hinter der Definition in das Script reinschreiben, oder?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 9. September 2007, 12:12

klaus hat geschrieben:Den Aufruf der Funktion latein() muss ich dann einfach hinter der Definition in das Script reinschreiben, oder?

Am besten so:

Code: Alles auswählen

if __name__ == '__main__':
    latein()
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Sonntag 9. September 2007, 12:20

stimmt, hab ich vergessen, danke
Benutzeravatar
klaus
User
Beiträge: 88
Registriert: Samstag 23. Juni 2007, 09:33
Wohnort: Kaufbeuren
Kontaktdaten:

Beitragvon klaus » Montag 10. September 2007, 15:49

Ich hab jetzt mal so nen groben Entwurf gemacht.

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 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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. September 2007, 14:40

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

Ich glaube du hast hier das falsche Forum erwischt und viele Fragen erledigen sich schon, wenn man die Tkinter-Dokumentation lesen würde.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder