与此处类似:Does Python have a string contains substring method?此问题仅处理字符串中的一个子字符串,我想测试其中一个。
类似的东西:
if 'AA' or 'BB' or 'CC' not in string:
print 'Nope'
但是,如果我的测试字符串是:
string='blahblahAA'
if仍然计算为True并打印语句。我可能只是错误地理解语法,任何帮助都会受到赞赏。
谢谢!
答案 0 :(得分:4)
使用any
:
>>> s = 'blahblahAA'
>>> any(x not in s for x in ('AA', 'BB', 'CC'))
True
您当前的代码相当于:
if ('AA') or ('BB') or ('CC' not in string)
由于'AA'
为True
(bool('AA')
为True
),因此总是评估为True
。
答案 1 :(得分:0)
您应该使用and而不是或声明。现在,你总是打印'Nope'如果其中一个子字符串不在您的字符串中。
在上面给出的示例中,您仍然可以打印“Nope'因为' BB'和' CC'不在字符串中,整个表达式的计算结果为真。
您的代码可能如下所示:
if ('AA' not in string) and ('BB' not in string) and ('CC' not in string):
print 'Nope'