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")
只有当两个条件不成立时才应该转到“其他”。但是如果两个子串都包含在字符串中;它应该打印两个。
答案 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