Python &引用;或;在一阵混乱中

Python &引用;或;在一阵混乱中,python,Python,因此,在长期使用JS之后,我将回到Python的基础知识。我只是说了一些和我想的相反的事情 我有以下代码: name = '' while name != 'your name' or 'your name.': print('Please type your name.') name = input() print('Thank you!') 但是,当我运行脚本并输入'your name'或'your name'时,脚本会一直循环,不会退出循环 我很困惑。那是因为你的第二个条

因此,在长期使用JS之后,我将回到Python的基础知识。我只是说了一些和我想的相反的事情

我有以下代码:

name = ''
while name != 'your name' or 'your name.':
    print('Please type your name.')
    name = input()
print('Thank you!')
但是,当我运行脚本并输入
'your name'
'your name'
时,脚本会一直循环,不会退出循环


我很困惑。

那是因为你的第二个条件只是一个字符串
“你的名字”。
,这总是正确的。您需要添加
name!='您的姓名。“
到第二个条件:

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

这是因为您的第二个条件只是一个字符串
“您的名字”。
,它总是正确的。您需要添加
name!='您的姓名。“
到第二个条件:

while name != 'your name' or name != 'your name.':
还有一种方法:

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

print('Thank you!')
还有一种方法:

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

print('Thank you!')

啊,是的!谢谢,傻我!您还可以创建一组有效字符串并测试包含:
而名称不在{'your name','your name.'}:
或者您可以使用
而不是name.startswith('your name')
啊,是的!谢谢,傻我!您还可以创建一组有效字符串并测试包含:
而名称不在{'your name','your name.'}:
或者您可以使用
而不是name.startswith('your name')