flake8 (E902) Ошибка токена в формате python

#python #python-3.x #flake8

#python #python-3.x #flake8

Вопрос:

Я не понимаю, почему я получил ошибку E902 flake8. Код выглядит следующим образом:

 def mi_func(x):

    # Asignar los valores a una lista
    lista_massn = x['MASSN'].values.tolist()
    lista_flag = x['UFLAG'].values.tolist()

    # Obtener los valores unicos
    unique_list_massn = unique_values(lista_massn)
    unique_list_flag = unique_values(lista_flag

    # Reglas de negocio para indicar desviaciones
    if (
            (len(unique_list_massn) == 1)
            amp; (unique_list_massn[0] == 'XE')
            amp; (max(unique_list_flag) == 0)):
        result = True
    else:
        result = False

    return result
  

Я думаю, что проблема заключается в операторе «if / else».
Я поместил условие в несколько строк, чтобы удовлетворить число символов <80 (flake8 E501).
Есть ли способ поместить этот оператор «if / else», удовлетворяющий обоим правилам flake8 (flake8 E501 и E902)?
Заранее спасибо!

Комментарии:

1. В качестве несвязанного предложения по стилю используйте and , а не amp; при работе с True / False; amp; это скорее математический оператор, выполняющий такие действия, как побитовое пересечение и пересечение множеств, в то время and как предназначен для условий.

Ответ №1:

E902 является общим для SyntaxError s (в данном случае a TokenError )

python или pypy дают вам более полезную синтаксическую ошибку в этом случае

 $ python3 t.py 
  File "t.py", line 14
    amp; (max(unique_list_flag) == 0)))
                                   ^
SyntaxError: invalid syntax
$ pypy3 t.py 
  File "t.py", line 8
    unique_list_flag = unique_values(lista_flag
                                    ^
SyntaxError: parenthesis is never closed
  

после исправления этого код передает flake8:

 $ flake8 t.py
$
  

Отказ от ответственности: Я сопровождающий flake8