Vokabeltrainer

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Schmalli
User
Beiträge: 5
Registriert: Freitag 10. Dezember 2010, 21:38

Hier ein kleiner Vokabeltrainer:http://www.file-upload.net/download-304 ... er.py.html

Er hat zwar noch ein paar Kinderkrankheiten, aber für meinen Eigengebrauch reicht er :D
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Ich hab das ganze mal in einen Pastebin gemacht, damit sich das vielleicht auch der ein oder andere anschaut ;) (http://paste.pocoo.org/show/303903/)

Ich fang mal an:
  • Deine Namensnennung der Variablen ist sehr verwirrend.
  • Du solltest die Vokabel und das deutsche Gegenstück besser in Wörterbüchern speichern
  • Du hast da eine Schleife in der immer wieder erst das ganze `random`-Modul geladen wird (was du gar nicht brauchst), und dann noch eine bestimmte Funktion daraus. Das ist nicht sparsam! ;)
    Edit:
  • Du kannst irgendeine der eingegebenen Vokabeln eingeben, es wird immer als richtig angesehen
    Edit #2:
  • Es ist auch nicht gesichert, dass alle Vokabeln abgefragt werden.
Edit #3:
So hätte man das wesentlich kürzer und eleganter machen können: ;)

Code: Alles auswählen

# -*- coding: utf-8 -*-
from random import sample

vocabulary = dict()

for i in range(15):
    vocable = raw_input("Vokabel: ")
    vocabulary[vocable] = raw_input("Übersetzung: ")

print '\n' * 200 # ich weiß, sehr unschön :/

for v in sample(vocabulary.keys(), len(vocabulary.keys())):
    print v
    answer = raw_input("Übersetzung: ")

    if answer == vocabulary[v]:
        print "Richtig! :-)"
    else:
        print "Leider falsch ;-("
Zuletzt geändert von nomnom am Sonntag 12. Dezember 2010, 16:02, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Vor allem auch: Das ganze erinnert an Learn Python the hard way :-)

@Schmalli: Denk mal drüber nach, wie man das ganze für 100 oder gar 1000 Vokabeln lösen könnte! Dazu musst Du mal anfangen / weitermachen, ein Tutorial durchzuarbeiten. Da Du Schleifen wohl irgend wie schon kennst (zumindest die while-Schleife), solltest Du Dich nun mal über Listen, Dictionaries und Sets schlau machen. Denn damit kann man sich dieses ständige Wiederholen von Code-Zeilen sparen. Das schöne an Deinem jetzt nocht falschen Vorgehen ist, dass Du den Sinn und die Vorteile von diesen Datenstrukturen schnell begreifen solltest.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Schmalli
User
Beiträge: 5
Registriert: Freitag 10. Dezember 2010, 21:38

Danke für eure Kommentare!
Ich hab da wohl etwas zu kompliziert gedacht :?
Einige der Begriffe in der "Musterlösung" kenne ich noch gar nicht. Ich werde
mich mal mit einem Buch schlau machen :D
Antworten