Если вы хотите напечатать строки, которые содержат '@Grab'
или '@ Grab'
, вы можете использовать:
test = page_parse[i].text
if ('@Grab' in test) or ('@ Grab' in test):
print(test)
Или, если у вас есть много строк, которые вы хотите проверить, может быть проще поместить их в список, подобный этому:
test = page_parse[i].text
if any(item in test for item in ['@Grab', '@ Grab']):
print(test)
Причина, по которой условие var or var2 in test
всегда True
, заключается в том, что Python анализирует это выражение как (var) or (var2 in test)
(из-за приоритета оператора , поскольку in
связывается более "плотно", чем or
). Так как var
является непустой строкой, она оценивается как True
в логическом контексте. Итак
(var) or (var2 in test)
эквивалентно
True or (var2 in test)
, который всегда оценивается как True
.