Elif: SyntaxError: неверный синтаксис

Я хочу re.search в операторе if, но независимо от идентификации получить синтаксическую ошибку. Это потому, что elif: не имеет условия?

    fr = re.compile(r'(long_regex)', flags = re.DOTALL | re.MULTILINE)
    fra = fr.search(text)
    if fra:
        result = fra.group(5)
    elif:
        f3 = re.compile(r'(some_regex_1)', flags = re.DOTALL | re.MULTILINE)
        fr3 = f3.search(text)
        result = fr3.group(5)
    elif:
        f4 = re.compile(r'(some_regex)', flags = re.DOTALL | re.MULTILINE)
        fr4 = f4.search(text)
        result = fr4.group(4)
    else:
        result = None

сообщение об ошибке

  Input In [102]
    elif:
        ^
SyntaxError: invalid syntax
Элиф что? docs.python.org/3/tutorial/controlflow.html.
CristiFati 23.04.2022 11:39
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
1
1
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для оператора elif вы должны указать условие. Например:

if a == 1:
  do_a()
elif a == 2:
  do_b()
else:
  do_c()

Спасибо, я угадал. Как здесь может выглядеть условие? elif: fra == None

id345678 23.04.2022 11:12

@id345678 elif fra is None:

azro 23.04.2022 11:13

отлично, спасибо ребята :)

id345678 23.04.2022 11:14
Ответ принят как подходящий

В elif у вас есть if, для этого требуется условие, а вы его не предоставляете, оно должно быть

if condition1:
    pass
elif condition2:
    pass

Используя оператор моржа (начиная с py3.8), вы можете улучшить свой код, чтобы он выглядел как

if fra := re.search(r'(long_regex)', text, flags=re.DOTALL | re.MULTILINE):
    result = fra.group(5)
elif fr3 := re.search(r'(some_regex_1)', text, flags=re.DOTALL | re.MULTILINE):
    result = fr3.group(5)
elif fr4 := re.search(r'(some_regex)', text, flags=re.DOTALL | re.MULTILINE):
    result = fr4.group(4)
else:
    result = None

Если код выполняется несколько раз, лучше скомпилировать регулярное выражение один раз.

Определите глобально скомпилированное регулярное выражение в файле

F2 = re.compile(r'(long_regex)', flags=re.DOTALL | re.MULTILINE)
F3 = re.compile(r'(some_regex_1)', flags=re.DOTALL | re.MULTILINE)
F4 = re.compile(r'(some_regex)', flags=re.DOTALL | re.MULTILINE)

Затем используйте его в своих методах

if fra := F2.search(text):
    result = fra.group(5)
elif fr3 := F3.search(text):
    result = fr3.group(5)
elif fr4 := F4.search(text):
    result = fr4.group(4)
else:
    result = None

Другие вопросы по теме