def beispiel() mit mehreren Variablen
Verfasst: Donnerstag 16. November 2017, 13:33
Hallo zusammen,
Ich habe mich wie empfohlen von Anfang an durch das Tutorial gearbeitet.
Zum Thema Variablen in einer Funktion bin ich auf ein Problem gestoßen wo ich die Quelle nicht verstehe oder erkennen.
Folgendes Szenario.
Ich habe Versucht eine Operation in eine Funktion auszulagern um den Quellcode übersichtlicher zu gestalten. Wenn ich die Operation direkt in den Code schreibe und diesen nicht auslagr, funktioniert auch alles. Sobald ich die Funktion verwende, werden Teile der Operation nicht oder fehlerhaft durchgeführt.
Beispiel am Code:
Ich hoffe sehr das ich im Tutorial nicht einfach was überlesen habe, ich bin wieder seit heute morgen dran und möglicherweise nicht mehr ganz so aufmerksam. Ich habe allerdings nochmal versucht das Problem selber zu lösen während ich den Beitrag geschrieben habe.
Was mir noch beim Testen aufgefallen ist:
- Wenn ich die Ausgabe in der Funktion hinterlege, werden die korrekt berechneten Werte ausgegeben.
- Allerdings scheint die Funktion immer wieder mit "0"-Werten in den Variablen anzufangen.
- Beim nächsten Schleifendurchlauf wäre als bei der Berechnung "points", "rights" und "wrongs" wieder bei "0" (Abhängig davon was ich bei der
Variablendeklaration angebe.).
Daraus erschliesst sich mir, das lediglich die Rückgabe der Variablen nicht funktioniert. Somit liest die Funktion immer wieder "0" ein, da die Variablen nicht aktualisiert werden und gibt immer "0" aus, da die Rückgabe nicht funktioniert.
Vielen Dank für eure Zeit
Gruß
Flo
Ich habe mich wie empfohlen von Anfang an durch das Tutorial gearbeitet.
Zum Thema Variablen in einer Funktion bin ich auf ein Problem gestoßen wo ich die Quelle nicht verstehe oder erkennen.
Folgendes Szenario.
Ich habe Versucht eine Operation in eine Funktion auszulagern um den Quellcode übersichtlicher zu gestalten. Wenn ich die Operation direkt in den Code schreibe und diesen nicht auslagr, funktioniert auch alles. Sobald ich die Funktion verwende, werden Teile der Operation nicht oder fehlerhaft durchgeführt.
Beispiel am Code:
Code: Alles auswählen
#Funktionen
#--------------------------------------------------------------
def answer_check(answer, points, rights, wrongs):
if answer == solution:
print("Correct.")
points=points+3
rights=rights+1
else:
print("Wrong.")
points=points-1
wrongs=wrongs+1
return points, rights, wrongs
#Programm
#--------------------------------------------------------------
points=0
rights=0
wrongs=0
for question, answer in zip((questions), (answers)):
print(question)
answer=" "
while answer not in ("A", "B", "C"):
answer=input("Your Answer (A, B, or C):")
answer_check(answer, points, rights, wrongs)
print("Points: {}\nCorrect answers: {}\nWrong answers: {}".format(points, rights, wrongs)
Was mir noch beim Testen aufgefallen ist:
- Wenn ich die Ausgabe in der Funktion hinterlege, werden die korrekt berechneten Werte ausgegeben.
- Allerdings scheint die Funktion immer wieder mit "0"-Werten in den Variablen anzufangen.
- Beim nächsten Schleifendurchlauf wäre als bei der Berechnung "points", "rights" und "wrongs" wieder bei "0" (Abhängig davon was ich bei der
Variablendeklaration angebe.).
Daraus erschliesst sich mir, das lediglich die Rückgabe der Variablen nicht funktioniert. Somit liest die Funktion immer wieder "0" ein, da die Variablen nicht aktualisiert werden und gibt immer "0" aus, da die Rückgabe nicht funktioniert.
Vielen Dank für eure Zeit
Gruß
Flo