Frage von Maxi1002, 42

Python syntax error?

Bekomme einen syntax error (invalid syntax) wenn ich diesen code "laufen" lassen will. Das ist ein Schere ,Stein ,Papier Spiel mit der Funktion mehrerer runden.

import random

i=int(input("Geben sie die Runden anzahl an: ") x=0 y=0

while i > 0: spieler=input("Gebe Schere, Stein oder Papier ein: ") computer = random.randint(1, 3) if computer == 3: computer = "Schere" elif computer == 2: computer = "Papier" elif computer == 1: computer = "Stein"

if computer == spieler:
    print("Unendschied")
    print("Spieler hatte:")
    print(spieler)
    print("computer hatte:")
    print(computer)

if spieler == "Papier":
    if computer == "Stein":
        print("Computer gewinnt")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        y=y+1
elif computer == "Schere":
        print("Du gewinnst")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        x=x+1

if spieler == "Schere":
    if computer == "Papier":
        print("Computer gewinnt")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        y=y+1
elif computer == "Stein":
        print("Du gewinnst")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        x=x+1

if spieler == "Stein":
    if computer == "Schere":
        print("Computer gewinnt")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        y=y+1
elif computer == "Papier":
        print("Du gewinnst")
        print("Spieler hatte:")
        print(spieler)
        print("computer hatte:")
        print(computer)
        i=i-1
        x=x+1

  if x=y:
         i=i+1

print("Gewonnene Spiele Spieler: ") print(x) print("Gewonnene Spiele Computer: ") print(y)

if x>y: print("Das gesamte Spiel hat Spieler gewonnen") else print("Das gesamte Spiel hat Computer gewonnen")

i ist die runden Anzahl y punkte computer x punkte spieler

Antwort
von TheBassHead, 26

Könntest du den Quellcode nochmal vernünftig posten? 

So kann ich dir spontan schon ein Fehler sagen, habe aber keine lust das alles durchzulesen ohne ne vernünftige einrückung

Antwort
von Maxi1002, 24

so habe das jetzt gelöst in dem ich die beiden Variabeln in die zeihlen vor

i=int(input("Geben sie die Runden anzahl an: ")

gesetzt habe nun bekomme ich den gleichen Fehler nur verwiesen auf das

while i > 0:
Kommentar von TheBassHead ,

Die Einrückung während der Deklaration und Initialisierung von 'spieler' und 'computer' war falsch, du hattest ein Leerzeichen zuviel drinne.

Du solltest also immer drauf achten deinen Code auch optisch sauber zu halten, dann wird sowas nicht mehr passieren.

Sonst hattest du am Ende noch zwei Fehler drinne. Einmal hast du 'x=y' geschrieben anstatt 'x == y' und du hast beim letzten 'else" die Doppelpunkte vergessen.

Leicht verbesserte Version deines Codes:

import random

i = int(input("Geben sie die Runden anzahl an: "))
x = 0
y = 0

while i > 0:
spieler = input("Gebe Schere, Stein oder Papier ein: ")
computer = random.randint(1, 3)

if computer == 3:
computer = "Schere"
elif computer == 2:
computer = "Papier"
elif computer == 1:
computer = "Stein"

if computer == spieler:
print("Unendschied")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)

if spieler == "Papier":
if computer == "Stein":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
y += 1
elif computer == "Schere":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
x += 1

if spieler == "Schere":
if computer == "Papier":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
x += 1
elif computer == "Stein":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
x += 1

if spieler == "Stein":
if computer == "Schere":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
y += 1
elif computer == "Papier":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i -= 1
x += 1
if x == y:
i += 1

print("Gewonnene Spiele Spieler: ")
print(x)
print("Gewonnene Spiele Computer: ")
print(y)

if x > y:
print("Das gesamte Spiel hat Spieler gewonnen")
else:
print("Das gesamte Spiel hat Computer gewonnen")
Kommentar von TheBassHead ,

Ich sehe grade das der Code durch Gutefrage auch falsch Formatiert wurde, hier ist einfach ein Link dazu: http://pastebin.com/ujz47F0j

Antwort
von TUrabbIT, 28

Auf welche Position verweist denn der Compiler für den Error?

Kommentar von ralphdieter ,

Mit diesem Hinweis wär's ja langweilig :-)

Aber man muss nicht lange suchen:

i=int(input("Geben sie die Runden anzahl an: ")
Kommentar von Maxi1002 ,

Er verweist auf x=0

Kommentar von Maxi1002 ,

wenn ich das x=0 weg mache verweister auf y=0 wenn ich dies wieder weg nehme auf while

Kommentar von TUrabbIT ,

Ich vermute dein Ursprüngliches Problem an der Stelle war eine fehlende ')' nach dem input Teil.

Kommentar von ralphdieter ,

Du schreibst:

  ( ausdruck

Dahinter könnte nun folgen:

  • schließende Klammer ⇒ Klammerausdruck
  • Operator ⇒ Rechenoperation
  • Komma ⇒ Tupel
  • if ⇒ bedingter Ausdruck
  • for ⇒ Generator
  • usw.

Du schreibst aber: x=0. Damit kann der Compiler nichts anfangen; aber er weiß nicht, was Du wirklich schreiben wolltest.

Antwort
von Maxi1002, 19
import random

i=int(input("Geben sie die Runden anzahl an: ")
x=0
y=0

while i > 0:
spieler=input("Gebe Schere, Stein oder Papier ein: ")
computer = random.randint(1, 3)
if computer == 3:
computer = "Schere"
elif computer == 2:
computer = "Papier"
elif computer == 1:
computer = "Stein"

if computer == spieler:
print("Unendschied")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)

if spieler == "Papier":
if computer == "Stein":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
y=y+1
elif computer == "Schere":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
x=x+1

if spieler == "Schere":
if computer == "Papier":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
y=y+1
elif computer == "Stein":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
x=x+1

if spieler == "Stein":
if computer == "Schere":
print("Computer gewinnt")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
y=y+1
elif computer == "Papier":
print("Du gewinnst")
print("Spieler hatte:")
print(spieler)
print("computer hatte:")
print(computer)
i=i-1
x=x+1
if x=y:
i=i+1

print("Gewonnene Spiele Spieler: ")
print(x)
print("Gewonnene Spiele Computer: ")
print(y)

if x>y:
print("Das gesamte Spiel hat Spieler gewonnen")
else
print("Das gesamte Spiel hat Computer gewonnen")

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten