Ich bin neu hier auf diesem Forum und bin auch in Python noch nicht so gut und habe deshalb ein paar fragen zu meinem eigenen Latein-Vokabeltrainer:
1.Wieso ändert dieser Code die Variablen pnts (punkte) und cntr (counter)nicht ab, obwohl es eigentlich bei jeder gestellten Frage passieren sollte.
Code: Alles auswählen
## Modul-Import
from random import *
## frage-Funktion:
def frage(data):
global pnts,cntr
qust, solu = data
answ = raw_input(qust)
if answ == solu:
print "Richtig!"
pnts = pnts + 1
else:
print "Leider falsch!"
print "Richtig ist: ", solu
cntr = cntr + 1
print
## latein-Funktion:
## Begrüßung und Stoffangabe
def latein():
print "Latein Vokabel- und Grammatiktrainer"
print "===================================="
print
check1 = 0
while check1 != 1:
topic = raw_input("Über was möchten sie ausgefragt werden?(Vok/Grm) ")
if topic != "Vok" and topic != "Grm":
print "falsche Eingabe"
print
else:
check1 = 1
lek = raw_input("Welche Lektionen? ")
## Stoffzuordnung
if topic == "Vok":
pass
elif topic == "Grm":
pass
## vorl. Stoffzuordnung
list = [("villa, ae ", "Landhaus"), ("figura, ae ", "Figur"),
("forma, ae ", "Gestalt"), ("Statua, ae ", "Statue"),
("flamma, ae ", "Feuer"), ("fabula, ae ", "Fabel")]
## Abfrage
pnts,cntr = 0,0
for elmt in range(3 * len(list)):
frage(choice(list))
## Benotung
print "Du hast",pnts,"von",cntr,"Punkten!"
if pnts >= 0.86 * cntr:
print "Note 1"
elif pnts >= 0.72 * cntr:
print "Note 2"
elif pnts >= 0.58 * cntr:
print "Note 3"
elif pnts >= 0.44 * cntr:
print "Note 4"
elif pnts >= 0.30 * cntr:
print "Note 5"
else:
print "Note 6"
## Wiederholung?
check3 = 0
while check3 != 1:
rep = raw_input("Möchtest du nochmal abgefragt werden?(j/n) ")
if rep != "j" and rep != "n":
print "falsche Eingabe"
print
else:
check3 = 1
if rep == "j":
print
latein()
Wäre nett, wenn mir jemand helfen könnte, weil wenn der Code erstmal steht, werde ich wahrscheinlich meine ganzen Sommerferien damit verbringen, die Lateinvokabeln in Listen zu schreiben (über 2000 Vok.).