Seite 1 von 1

Python IF Statement

Verfasst: Samstag 22. Januar 2022, 15:13
von ef_711
Hallo ich habe jetzt einige Einträge hier im Forum gelesen, konnte aber noch keine Lösung für mein Problem finden. Für folgenden Code bekomme ich immer einen invalid Syntax, verstehe aber noch nicht warum. Ich hoffe, dass ihr mir da helfen könnt.
points = 174 # use this input to make your submission
prizeMsg = " Congratulations! You won a [prize name]"
noPrizeMsg = "Oh dear, no prize this time."
# write your if statement here
if points == 0:
print(noPrizeMsg)

elif points > 0 and < 51:
prize_name = ("wooden rabbit")
print (prizeMsg)

elif points > 50 and < 151:
print(noPrizeMsg)

elif points > 150 and < 181:
prize_name = ("wafer-thin mint")
print (prizeMsg)

elif points > 180 and < 201:
prize_name = ("penguin")
print(prizeMsg)

else:
print(noPrizeMsg)
print(result)

Re: Python IF Statement

Verfasst: Samstag 22. Januar 2022, 17:02
von sparrow
Ohne jetzt tiefer in deinen Code einzusteigen, schon das hier macht nicht, was du glaubst:

Code: Alles auswählen

elif points > 0 and < 51:
Wenn du wissen willst ob points größer 0 und kleiner 51 ist, dann schreibt man das so:

Code: Alles auswählen

elif 0 < points < 51:

Re: Python IF Statement

Verfasst: Samstag 22. Januar 2022, 18:54
von __blackjack__
Und auch das ist ja schon ein Syntaxfehler wenn ``and`` und ``<`` sind zwei direkt aufeinanderfolgende binäre Operatoren, die so ohne einen Operanden dazwischen eben schon syntaktisch falsch sind.

Re: Python IF Statement

Verfasst: Samstag 22. Januar 2022, 23:00
von Sirius3
Wenn man Bedingungen hat, die sich gegenseitig ausschließen, dann kann man das viel klarer schreiben:

Code: Alles auswählen

if points <= 0:
    print(noPrizeMsg)
elif points < 51:
    prize_name = "wooden rabbit"
    print (prizeMsg)
elif points < 151:
    print(noPrizeMsg)   
elif points < 181:
    prize_name = "wafer-thin mint"
    print (prizeMsg)    
elif points < 201:
    prize_name = "penguin"
    print(prizeMsg)    
else:
    print(noPrizeMsg)