我正在试图弄清楚如何检查行是否包含某些子字符串,如果是,则打印该字符串。如果没有,什么都不做。为此,没有做任何事情,我发现在Python中有一个声明只保留空间并且什么都不做,这是pass
所以我用它。但结果是无论条件如何,都会打印所有字符串。
try:
string = line.split(',')
if string[0] != 'Aa' or string[0] != 'Bb':
pass
print string
答案 0 :(得分:4)
就是这样:
string = line.split(',')
if string[0] == 'Aa' or string[0] == 'Bb':
print string
您不需要pass
答案 1 :(得分:2)
print string
行独立于if语句。意思是,无论您的条件是否为真,都会执行它。
您需要else:
块来执行您想要的操作:
string = line.split(',')
if string[0] != 'Aa' and string[0] != 'Bb': # You need 'and' up here
pass
else:
print string # This will only be executed if the condition is false
但这有点多余。更好的方法就是:
string = line.split(',')
if string[0] == 'Aa' or string[0] == 'Bb':
print string
或者也许:
string = line.split(',')
if string[0] in {'Aa', 'Bb'}:
print string
答案 2 :(得分:2)
try/except
用于处理错误。我不认为你为此目的需要它。
string=line.split(',')
是正确的。它会根据逗号将字符串拆分为字符串列表。
问题是print string
。它不在if
语句的范围内,因此if
语句对打印字符串没有影响。你会想要这样的东西:
if string[0] != 'Aa' or string[0] != 'Bb':
pass
else:
print string
或更好:
if string[0] == 'Aa' or string[0] == 'Bb':
print string