给定两个“if”语句,如果没有执行任何代码,则执行一些代码

时间:2018-05-11 13:14:38

标签: python if-statement

嘿,我不知道如何编程这个星座:

string = " "
if "abc" in string:
    print ("abc is in string")
if "def" in string:
    print ("def is in string")
else:
    print ("abc and def are not contained in string")

只有当两个条件不成立时才应该转到“其他”。但是如果两个子串都包含在字符串中;它应该打印两个。

3 个答案:

答案 0 :(得分:2)

您可以简单地为每个条件定义一个布尔值 它使代码简单

abc = "abc" in string
def_ = "def" in string
if abc : 
    print("abc in string")
if def_ : 
    print("def in string")
if not (abc or def_) : 
    print("neither abc nor def are in this string")

答案 1 :(得分:2)

另一种选择是使用仅在以前满足条件时才为真的变量。默认情况下,此变量(我们称之为found)将为false:

found = False

但是,在每个if语句中,我们将其设置为True

if "abc" in string:
    print ("abc is in string")
    found = True

if "def" in string:
    print ("def is in string")
    found = True

现在我们只需检查变量。如果满足任何条件,那将是真的:

if not found:
    print ("abc and def are not contained in string")

这只是解决这个问题的其中一个选择,但我已经看过很多次这种模式。当然,如果你觉得它会更好,你可以选择其他方法。

答案 2 :(得分:1)

如何循环使用它们?这是完全通用的,可用于任何数量的字符串以检查您可能需要。

string = " "
strs = ("abc", "def")
if any(s in string for s in strs):
    for s in strs:
        if s in string:
            print ("{} is in string".format(s))
else:
    print (" and ".join(strs) + " are not contained in string")

这里有live example