带有两个条件的iff语句,Python

2024-05-17 00:11:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个程序,由于某种原因,我的if语句有两个条件,不能工作。我已经设置好了,所以你需要在开门前拿到钥匙,但当我拿到钥匙后,它仍然不起作用

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

Tags: key程序if语句loweren钥匙st
2条回答

替换:

if svar.lower() == 'åpne døren':
    print (f'Døren er låst.')
    continue

据此:

if svar.lower() == 'åpne døren' and key==0:
    print (f'Døren er låst.')
    continue

原因是当键为1时,第一个if为true,因此它跳过所有其他if

您的第一个if语句将阻止第三个被访问(因为它将继续到下一个迭代),您应该在第一个之前检查第三个,或者重构逻辑

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')

相关问题 更多 >