不是等于操作员(!=)在Python字符串比较中不起作用



我正在尝试比较 python 3.6中的两个 strings,如果它们不相等,则打印一条消息并退出。我当前的代码是:

location = 'United States of America'
if location.lower() != 'united states of america' or location.lower() != 'usa':
    print('Location was different = {}'.format(location.lower()))
    sys.exit()
else:
    #do something

但是上面的代码无法匹配两个字符串,即使它们相等,它也会进入循环和打印它们与众不同。我知道我犯了一些愚蠢的错误,但无法弄清楚。

您的状况:

if location.lower() != 'united states of america' or location.lower() != 'usa':

永远不会是False,因为location.lower()不能同时是2个不同的字符串。

我怀疑你想要:

if location.lower() != 'united states of america' and location.lower() != 'usa':

您在if语句中正在寻找一个和条件,而不是或条件。如果您更改了应该设置的

最新更新