Seite 1 von 1

Fehlermeldung

Verfasst: Sonntag 17. Februar 2019, 15:55
von Adnan307
Hallo!
Ich habe heute angefangen Python zu programmieren. Es war kein Fehler. Ich hab eben dann ein kleines Programm geschrieben das mit rechnen zu tun hat.
Ich bekomm jedoch eine Fehlermeldung.

Code: Alles auswählen

def Waffenschaden():
	Ar = 30
	Pumpgun = 100
	Deagle = 70
	Ak = 44
	
	waffentyp = int(input("Welche Waffe(Ar(1),Pumpgun(2),Deagle(3),Ak(4))?:" )
	waffenfarbe = int(input("Welche Waffenfarbe(grau(1),grün(2),blau(3),lila(4),gold(5))?:" )
	schuss_anzahl = int(input("Wie viele Schüsse?:" )
	#Ar Abfrage
	if(waffentyp == 1 and waffenfarbe == 1):
		return Ar * schuss_anzahl
	if(waffentyp == 1 and waffenfarbe == 2):
		Ar += 2
		return Ar * schuss_anzahl
	if(waffentyp == 1 and waffenfarbe == 3):
		Ar += 4
		return Ar * schuss_anzahl
	if(waffentyp == 1 and waffenfarbe == 4):
		print("Waffe existiert nicht)
	if(waffentyp == 1 and waffenfarbe == 5):
		print("Waffe existiert nicht)
		
		#Pumpgun Abfrage
	if(waffentyp == 2 and waffenfarbe == 1):
		print("Waffe existiert nicht)
	if(waffentyp == 2 and waffenfarbe == 2):
		Pumpgun -= 20
		return Pumpgun * schuss_anzahl
	if(waffentyp == 2 and waffenfarbe == 3):
		Pumpgun -= 10
		return Pumpgun * schuss_anzahl
	if(waffentyp == 2 and waffenfarbe == 4):
		return Pumpgun * schuss_anzahl
	if(waffentyp == 2 and waffenfarbe == 5):
		Pumpgun += 10
		return Pumpgun * schuss_anzahl
		
		#Deagle Abfrage
	if(waffentyp == 3 and waffenfarbe == 1):
		print("Waffe existiert nicht)
	if(waffentyp == 3 and waffenfarbe == 2):
		print("Waffe existiert nicht)
	if(waffentyp == 3 and waffenfarbe == 3):
		print("Waffe existiert nicht)
	if(waffentyp == 3 and waffenfarbe == 4):
		return Deagle * schuss_anzahl
	if(waffentyp == 3 and waffenfarbe == 5):
		Deagle += 5
		return Deagle * schuss_anzahl
		
		#Ak Abfrage
	if(waffentyp == 4 and waffenfarbe == 1):
		print("Waffe existiert nicht)
	if(waffentyp == 4 and waffenfarbe == 2):
		print("Waffe existiert nicht)
	if(waffentyp == 4 and waffenfarbe == 3):
		return Ak * schuss_anzahl
	if(waffentyp == 4 and waffenfarbe == 4):
		Ak += 2
		return Ak * schuss_anzahl
	if(waffentyp == 4 and waffenfarbe == 5):
		Ak += 5
		return Ak * schuss_anzahl
		
gegner_leben = int(input("Wie viel Leben hat ihr Gegner?:")

schaden = int(Waffenschaden())

#Leben abziehen
gegner_leben1 = gegner_leben - schaden

print("Der Gegner hat noch"+ " " + gegner_leben)	

abgezogenes_leben = gegner_leben - gegner_leben1

print("Sie haben ihm" + " " + abgezogenes_leben + " " + "Leben abgezogen")

if(gegner_leben1 <= gegner_leben/2)
	print("Der Gegner ist low"
else:
	print("Der Gegner hat noch mehr als die Hälfte seines Lebens")
elif(schaden > gegner_leben)
	print("Der Gegner ist Tod")
Die Fehlermeldung lautet: "SyntaxError: invalid syntax"
und ein Pfeil zeigt auf des e von waffenfarbe(anfang des codes).
Ich weiß nicht weiter, habt ihr eine Idee?

Re: Fehlermeldung

Verfasst: Sonntag 17. Februar 2019, 18:02
von __deets__
Du musst strings die mit “ anfangen auch damit wieder abschließen.

Re: Fehlermeldung

Verfasst: Sonntag 17. Februar 2019, 18:18
von Sirius3
Anmerkungen zum Code: if ist keine Funktion, die Klammern gehören also allesamt weg. Auch wenn man die if-Kaskade in Waffenschaden am besten durch eine geeignete Datenstruktur ersetzt, als erster Schritt wäre die if's zu verschachteln, als erstes waffentyp abzuprüfen und innerhalb dann waffenfarbe.
Weiter unten gibt es noch ein paar Syntaxfehler wegen falschem elif und fehlenden Klammern.
Programmieren heißt auch, Code stück für Stück zu testen und nicht zig Zeilen herunterzuschreiben und dann anzufangen, nach Fehlern zu suchen.

Re: Fehlermeldung

Verfasst: Sonntag 17. Februar 2019, 19:12
von ThomasL
Jede Menge fehlende Klammern , Anführungszeichen, etc.
Was passiert wenn eine Waffe nicht existiert?

Code: Alles auswählen

def waffenschaden():
	Ar = 30
	Pumpgun = 100
	Deagle = 70
	Ak = 44
	
	waffentyp = int(input("Welche Waffe (Ar(1), Pumpgun(2), Deagle(3), Ak(4))?:")) # hier fehlte eine Klammer
	waffenfarbe = int(input("Welche Waffenfarbe (grau(1), grün(2), blau(3), lila(4), gold(5))?:" )) # Hier fehlte eine Klammer
	schuss_anzahl = int(input("Wie viele Schüsse?:" )) # Hier fehlte eine Klammer
	#Ar Abfrage
	if waffentyp == 1 and waffenfarbe == 1:
		return Ar * schuss_anzahl
	if waffentyp == 1 and waffenfarbe == 2:
		Ar += 2
		return Ar * schuss_anzahl
	if waffentyp == 1 and waffenfarbe == 3:
		Ar += 4
		return Ar * schuss_anzahl
	if waffentyp == 1 and waffenfarbe == 4:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 1 and waffenfarbe == 5:
		print("Waffe existiert nicht") # " fehlte
	
	# Pumpgun Abfrage
	if waffentyp == 2 and waffenfarbe == 1:
		print("Waffe existiert nicht")
	if waffentyp == 2 and waffenfarbe == 2:
		Pumpgun -= 20
		return Pumpgun * schuss_anzahl
	if waffentyp == 2 and waffenfarbe == 3:
		Pumpgun -= 10
		return Pumpgun * schuss_anzahl
	if waffentyp == 2 and waffenfarbe == 4:
		return Pumpgun * schuss_anzahl
	if waffentyp == 2 and waffenfarbe == 5:
		Pumpgun += 10
		return Pumpgun * schuss_anzahl
	
	# Deagle Abfrage
	if waffentyp == 3 and waffenfarbe == 1:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 3 and waffenfarbe == 2:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 3 and waffenfarbe == 3:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 3 and waffenfarbe == 4:
		return Deagle * schuss_anzahl
	if waffentyp == 3 and waffenfarbe == 5:
		Deagle += 5
		return Deagle * schuss_anzahl
	
	# Ak Abfrage
	if waffentyp == 4 and waffenfarbe == 1:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 4 and waffenfarbe == 2:
		print("Waffe existiert nicht") # " fehlte
	if waffentyp == 4 and waffenfarbe == 3:
		return Ak * schuss_anzahl
	if waffentyp == 4 and waffenfarbe == 4:
		Ak += 2
		return Ak * schuss_anzahl
	if waffentyp == 4 and waffenfarbe == 5:
		Ak += 5
		return Ak * schuss_anzahl


gegner_leben = int(input("Wie viel Leben hat ihr Gegner?:"))  # hier fehlte eine Klammer

schaden = int(waffenschaden())

#Leben abziehen
gegner_leben1 = gegner_leben - schaden
print("Der Gegner hat noch ", gegner_leben)	
abgezogenes_leben = gegner_leben - gegner_leben1
print("Sie haben ihm ", abgezogenes_leben, "Leben abgezogen")

if gegner_leben1 <= gegner_leben/2:   #  Doppelpunkt fehlte
	print("Der Gegner ist low")    # Klammer zu fehlte
elif schaden > gegner_leben:      #  Doppelpunkt fehlte
	print("Der Gegner ist Tod")
else:    #  else  vor elif geht nicht
	print("Der Gegner hat noch mehr als die Hälfte seines Lebens")