通行证状态

2024-06-24 07:02:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出如何检查行是否包含一些子字符串,如果包含,则打印该字符串。如果没有,什么也不做。对于这个什么也不做的事情,我发现Python中有一个语句只保留空间,什么也不做,就是pass,所以我使用了它。但结果是无论条件如何,所有字符串都被打印出来。你知道吗

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

Tags: or字符串stringiflinepass语句条件
3条回答

就这样:

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

你不需要pass

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

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

相关问题 更多 >