Warum geht das nicht (Python Code)?

... komplette Frage anzeigen

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.

Antwort bewerten Vielen Dank für Deine Bewertung

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

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

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?