Home > OS >  If-statement with two conditions, Python
If-statement with two conditions, Python

Time:09-25

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

  • Related