Pot: Python: Eingabe wird verworfen

Beitrag lesen

echo $begrüßung;

print 'guten tag'

Du setzt nicht das normale Spiel fort, du rufst nach dem "t" die Funktion human rekursiv auf. Wenn darin kein "t" eingegeben wurde, landest du im else-Zweig von if abziehen == 't'. Duort gibst du mit return etwas zurück. Damit kehrst du wieder in den ursprünglichen Aufruf von human() zurüch und da dort keine weitere Anweisung auszuführen ist, beendet sich human(), und gibt dabei nichts zurück

Das erklärt einiges.

Soweit dazu. Gestattest du noch ein paar allgemeine Bemerkungen?

Immer her damit!

if __name__ == "__main__":
    main()

Hast du vor, das als eingebundenes Modul laufen lassen zu können? Dann solltest du aber auch auf Dinge wie sys.exit() verzichten. Wenn nicht, kannst du das Hauptprogramm auch direkt und ohne main() laufen lassen (denn das ist typisch C und unter Python nicht nötig).

Nein eigentlich nicht. Diese Weise hat mir jemand empfohlen, falls es einfach dazu kommen sollte, es als Modul zu benutzen.

Es besteht auch keine Notwendigkeit, die Funktionen human() und computer() innerhalb von main() anzusiedeln.

Ok.

while abziehen in range(1, 4):
                return 100
                break
            else:
                print 'Schiedsrichter [%d]: Du darfst nur eine, zwei oder drei Münzen entfernen' % muenz
                return 100

Hier reicht zum einen ein einfaches if statt einer Schleife. Die Schleife bricht sowieso im ersten Durchlauf ab, indem die Funktion ganz verlassen wird und auch der else veranlasst ein Verlassen der Funktion. Außerdem ist das break überflüssig, da es wegen des vorangehenden return niemals ausgeführt wird.

Die Schleife hab ich nur eingebaut damit es wieder "zurückspickt" falls eine falsche Zahl angegeben wurde.

echo "$verabschiedung $name";

print 'tschuess', name

--
For Windows-Problems -> reboot
For Linux-Problems -> be root!