I'm making a program and for some reason my if-statement with two conditions doesn't work. I've set it so you need to get a key before you open the door, but when I've gotten the key, it still doesn't work.
key = 0
while True:
print ('Du står utenfor en dør med en postkasse.')
svar = input ('> ')
if svar.lower() == 'åpne døren':
print (f'Døren er låst.')
continue
if svar.lower() == 'åpne postkassen':
print (f'Du fant en nøkkel!')
key = 1
continue
if (svar.lower() == 'åpne døren') and (key==1):
print (f'Du låser opp døren og går inn.')
break
else:
print (f'Kommandoen er ukjent, prøv på nytt')
continue
CodePudding user response:
Your first if statement will stop the third from ever being reached (due to it continuing to the next iteration), you should either check the third before the first or refactor the logic
if svar.lower() == 'åpne døren':
if key == 1:
print (f'Du låser opp døren og går inn.')
break
print (f'Døren er låst.')
continue
if svar.lower() == 'åpne postkassen':
print (f'Du fant en nøkkel!')
key = 1
continue
print (f'Kommandoen er ukjent, prøv på nytt')
CodePudding user response:
replace :
if svar.lower() == 'åpne døren':
print (f'Døren er låst.')
continue
by this :
if svar.lower() == 'åpne døren' and key==0:
print (f'Døren er låst.')
continue
the reason is when the key is one, the first if is true so it skip all other if