传递语句的条件

时间:2015-01-04 18:41:09

标签: python if-statement

我正在试图弄清楚如何检查行是否包含某些子字符串,如果是,则打印该字符串。如果没有,什么都不做。为此,没有做任何事情,我发现在Python中有一个声明只保留空间并且什么都不做,这是pass所以我用它。但结果是无论条件如何,都会打印所有字符串。

try:
  string = line.split(',')
  if string[0] != 'Aa' or string[0] != 'Bb':
    pass
  print string

3 个答案:

答案 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