python出现意外结果

2024-09-27 19:11:53 发布

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

if __name__ == '__main__':

    val='n'
    while val != 'y' or val != 'Y':
        val = input("are we done ? [Y/n]: ")

    exit()

and got quite perplexed as the result is

are we done ? [Y/n]: y  
are we done ? [Y/n]: y  
are we done ? [Y/n]: Y  
are we done ? [Y/n]: Y  
are we done ? [Y/n]: yes  
are we done ? [Y/n]:  

我想也许related question will help但还是不高兴。 有人知道为什么我的第一次审判失败了吗


Tags: orandnameinputifmainexitval
3条回答

这是你的状况。即使valy,这也是正确的,因为它不是Y

试一试

while val != 'y' and val != 'Y':

只有当它既不是y也不是Y时,这才是正确的

您需要将or替换为and

这是因为您希望循环仅在两个条件都为真时停止运行

最终代码:-

if __name__ == '__main__':
    
        val='n'
        while val != 'y' and val != 'Y':
            val = input("are we done ? [Y/n]: ")

        exit()

更好地使用.lower()方法-

if __name__ == '__main__':

    val='n'
    while val.lower() != 'y': # This will work for 'y' and 'Y'
        val = input("are we done ? [Y/n]: ")

    exit()

你可以做得更好-

if __name__ == '__main__':

    while True:
        val = input("are we done ? [Y/n]: ")

        if val.lower() == 'y':
            exit()

相关问题 更多 >

    热门问题