Wenn Sie den Ausdruck so lesen
%Vor%Das Problem wird offensichtlich. Was passiert, ist, dass 'string1' zu True ausgewertet wird, so dass der Rest des Ausdrucks kurzgeschlossen ist.
Der lange Weg, es zu schreiben, ist dies
%Vor% Was ein wenig repetitiv ist, in diesem Fall ist es besser, any()
wie in Ignacios Antwort
or
verhält sich nicht so. 'string1' or 'string2' or 'string3' in line
ist gleichbedeutend mit ('string1') or ('string2') or ('string3' in line)
, was immer wahr (tatsächlich, 'string1'
) zurückgibt.
Um das gewünschte Verhalten zu erhalten, können Sie if any(s in line for s in ('string1', 'string2', 'string3')):
sagen.
Tags und Links python