Подтвердить что ты не робот

If statement в Python

Есть ли эквивалент инструкции unless в Python? Я не хочу добавлять строку к метке, если она имеет p4port в ней:

for line in newLines:
    if 'SU' in line or 'AU' in line or 'VU' in line or 'rf' in line  and line.find('/*') == -1:
        lineMatch = False
    for l in oldLines:
        if '@' in line and line == l and 'p4port' not in line:
            lineMatch = True
            line = line.strip('\n')
            line = line.split('@')[1]
            line = line + '<br>\n'
            labels.append(line)
    if '@' in line and not lineMatch:
        line = line.strip('\n')
        line = line.split('@')[1]
        line="<font color='black' style='background:rgb(255, 215, 0)'>"+line+"</font><br>\n"
        labels.append(line)

Я получаю синтаксическую ошибку:

   if '@' in line and not lineMatch:
   UnboundLocalError: local variable 'lineMatch' referenced before assignment
4b9b3361

Ответ 1

Как насчет 'не в'?:

if 'p4port' not in line:
    labels.append(line)

Также я предполагаю, что код можно изменить, а затем:

if '@' in line and line == l and 'p4port' not in line:
    lineMatch = True
    labels.append(line.strip('\n').split('@')[1] + '<br>\n')

Ответ 2

Нет инструкции "except", но вы всегда можете написать:

if not some_condition:
    # do something

Там также оператор not in, о котором говорил Арциум, поэтому для вашего кода вы должны написать:

if '@' in line and line == l:
    lineMatch = True
    line = line.strip('\n')
    line = line.split('@')[1]
    line = line + '<br>\n'
    if 'p4port' not in line:
        labels.append(line)

... но версия Artiom лучше, если вы не планируете что-то делать с измененной переменной line позже.

Ответ 3

Ошибка, которую вы получаете в своем (довольно резко) отредактированном вопросе, говорит вам, что переменная lineMatch не существует, что означает, что условия, которые вы указали для ее установки, не были выполнены. Это может помочь добавить строку типа LineMatch = False в качестве первой строки внутри вашего внешнего цикла for (перед первым оператором if), чтобы убедиться, что она существует.