带 pass 语句的条件
Condition with pass statement
我正在尝试弄清楚如何检查行是否包含某些子字符串,如果包含,则打印该字符串。如果没有,什么也不做。对于这个什么都不做的事情,我发现在Python里面有一个语句只是持有space什么都不做,就是pass
所以我就用了。但结果是无论条件如何都将打印所有字符串。
try:
string = line.split(',')
if string[0] != 'Aa' or string[0] != 'Bb':
pass
print string
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
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
就是这个:
string = line.split(',')
if string[0] == 'Aa' or string[0] == 'Bb':
print string
你不需要pass
我正在尝试弄清楚如何检查行是否包含某些子字符串,如果包含,则打印该字符串。如果没有,什么也不做。对于这个什么都不做的事情,我发现在Python里面有一个语句只是持有space什么都不做,就是pass
所以我就用了。但结果是无论条件如何都将打印所有字符串。
try:
string = line.split(',')
if string[0] != 'Aa' or string[0] != 'Bb':
pass
print string
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
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
就是这个:
string = line.split(',')
if string[0] == 'Aa' or string[0] == 'Bb':
print string
你不需要pass