2017-01-29 114 views
0

如何使if语句具有两个值,即同义词即“display”和“screen”,然后是and和另一个字符串,如“broken”。这个想法是,只有在出现“显示”,“破碎”或“屏幕”和“破碎”时才会输出。不知道如何在if语句中编写或和语句

我曾尝试:

def issuesection(): 
    issue = input("Type in your issue in a sentence and we will try out best to help you with a solution: ") 
    if "display" or "screen" in issue and "broken" in issue: 
     print('WORKED') 
    else: 
     print("FAIL") 

回答

1

的问题是,Python看到:

"display" or "screen" in issue 

为:

("display") or ("screen" in issue) 

所以它计算的"display"truthness每个非空字符串都是认为是True

所以你应该把它改写为:

if "display" in issue or "screen" in issue and "broken" in issue:

此外,由于你想要的and绑定到两个in检查,你也应该括号为and的左操作数:

if ("display" in issue or "screen" in issue) and "broken" in issue:

现在它说:“如果显示或屏幕出现问题,条件成立; 损坏以及”。如果没有方括号,则会显示: “如果显示有问题,则条件成立; 屏幕和损坏问题”。

+0

这是最紧凑的方式吗? –

+0

可能是的,尽管代码最小化是一个非常困难的问题。 –

+0

你也可以做任何(x [in [“display”,“screen”]中的x),这个例子比较长,但是你可以在其他位置创建列表和/或添加更多的东西所以更具可扩展性 – Copperfield