Fehlermeldung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Adnan307
User
Beiträge: 1
Registriert: Sonntag 17. Februar 2019, 15:48

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?
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst strings die mit “ anfangen auch damit wieder abschließen.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

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")
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten