【问题标题】:"or" in a while loop confusion [duplicate]“或”在while循环混乱中[重复]
【发布时间】:2018-07-14 22:26:13
【问题描述】:

所以在 JS 工作了很长时间之后,我将回到 Python 的基础。而且我只是做了一些与我认为它会做的事情相反的事情。

我有以下代码:

name = ''
while name != 'your name' or 'your name.':
    print('Please type your name.')
    name = input()
print('Thank you!')

但是,当我运行脚本并输入 'your name''your name' 时,脚本会一直循环,不会退出循环。

我很困惑。

【问题讨论】:

    标签: python


    【解决方案1】:

    那是因为您的第二个条件只是一个字符串'your name.',这始终是正确的。第二个条件需要加上name != 'your name.'

    while name != 'your name' or name != 'your name.':
    

    【讨论】:

    • 啊,是的!谢谢,我傻了!
    • 您还可以创建一组有效字符串并测试是否包含:while name not in {'your name', 'your name.'}:
    • 或者你可以使用while not name.startswith('your name')
    【解决方案2】:

    这是另一种方式:

    while True:
        print('Please type your name.')
        name = input()
        if name.startswith('your name'):
            print('invalid')
        else:
            break
    
    print('Thank you!')
    

    【讨论】:

      猜你喜欢
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2014-05-25
      相关资源
      最近更新 更多