需要解决if / else和“ and”问题

时间:2019-08-26 16:40:38

标签: python python-3.x

只是试图让python能够判断我做过a和b的两个函数中是否都包含字符串“ John”,但它不起作用

我尝试使用elif(例如:'elif“ John”不在a和b'中,而不是那里的“ else”),但这没有什么区别。我尝试从b移除Jack并只留下引号,实际上返回“只有其中一个被命名为John”,这当然是正确的,因为当我将其更改为仅引号时,b不会说“ John”,但是当字符串为“ Jack”时b也不说john,那么当我在其中输入“ Jack”时为什么不说“只有一个叫John”? (很抱歉,我对标点符号的使用不好,对此我非常不好)

以下是供您查看的代码:

    a = "John"
    b = "Jack"

    if "John" in a and b:
        print("Both are named John")
    else:
        print("Only one of them are named John")

当b没有字符串“ John”时,我希望结果说“只有一个叫约翰”,但是总是说“两个都叫约翰”

1 个答案:

答案 0 :(得分:3)

您使用if "John" in a and b:的意思是if ("John" in a) and b:

这是因为 in的优先级高于or

您需要执行以下操作:

a = "John"
b = "Jack"

if "John" in a and "John" in b:
    print("Both are named John")
else:
    print("Only one of them are named John")

请注意if "John" in a and "John" in b:,它等效于if ("John" in a) and ("John" in b):