Warum geht das nicht (Python Code)?

...komplette Frage anzeigen hilfe - (Programm, programmieren, Python)

2 Antworten

Hintergrund:

Python interpretiert deinen Code folgendermaßen:

Bei

if spieler == "schere" or "Schere":

wird zuerst

spieler == "schere"

ausgewertet was im Fall von spieler = "stein" den Wert False liefert.

Dementsprechend wird als nächstes

False or "Schere"

ausgewertet, was "Schere" liefert. Schließlich wird dann

if "Schere":

ausgewertet. Da jeder nicht-leere String als True interpretiert wird, wird dementsprechend der Block

lz(1)
print("Du hast Schere gewählt !")

ausgeführt.

Lösungen:

Du kannst

if spieler == "schere" or "Schere":

beispielsweise durch

if spieler in {"schere", "Schere"}:

oder durch

if spieler == "schere" or spieler == "Schere":

ersetzen.

Ich hab zwar noch nie Python programmiert, aber versuch es mal mit 

if spieler=="schere" or spieler=="Schere":

Was möchtest Du wissen?