Курс Python → Приоритет операций в Python

При работе с операторами в Python важно помнить о приоритете выполнения операций. В данном случае, оператор == имеет более высокий приоритет, чем оператор not. Это означает, что выражение not x == y будет интерпретировано как not (x == y), что в свою очередь эквивалентно not (True == False), что приведет к итоговой оценке True.

Однако, если мы попытаемся написать выражение x == not y, мы получим ошибку SyntaxError. Это происходит потому, что данное выражение может быть неправильно интерпретировано как (x == not) y, а не x == (not y), как мы могли бы предположить на первый взгляд. Анализатор кода ожидал, что токен not будет частью оператора not in (поскольку оба оператора == и not in имеют одинаковый приоритет), и когда не нашел следующего за not токена in, он сгенерировал ошибку.

Для избежания подобных ошибок, важно явно указывать порядок выполнения операций с помощью скобок. Например, вместо написания x == not y, лучше использовать x == (not y), чтобы избежать недоразумений и сделать код более понятным для других разработчиков.


# Примеры кода:

x = True
y = False

result_1 = not x == y
print(result_1) # Вывод: True

# result_2 = x == not y # Вызовет SyntaxError

result_3 = x == (not y)
print(result_3) # Вывод: True

Использование правильного порядка операций и явное указание приоритета операторов поможет избежать ошибок в коде и сделает его более читаемым и понятным для других разработчиков.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Генераторы данных
  2. Работа с каталогами в Python
  3. Дефолтные параметры в Python
  4. Python Менеджер контекста
  5. Объединение строк с помощью метода join
  6. Создание GUI на Tkinter
  7. Метод index() в Python
  8. Структуры данных в Python
  9. Работа с NumPy
  10. Использование defaultdict в Python
  11. Регулярные выражения: метод match
  12. Профилирование кода на Python
  13. Работа с очередями в Python
  14. Константы в модуле cmath
  15. Операция += для списков
  16. Работа с датой и временем в Python
  17. Декоратор Property в Python
  18. Передача словаря через **kwargs
  19. Глобальные переменные в Python
  20. Решение переменной Шредингера
  21. Запуск асинхронной корутины
  22. Прокачанный трейсинг ошибок
  23. Присвоение и ссылки
  24. Блок else в обработке исключений
  25. Создание коллекций из выражения-генератора
  26. Возврат нескольких значений
  27. Установка Python3.7 и PIP
  28. Основные операции с библиотекой Numpy
  29. Метод rpow в Python
  30. Счетчик ссылок в Python
  31. Оператор Walrus: правильное использование
  32. Строковое представление объектов
  33. Преобразование строки в число
  34. Импортирование в Python
  35. Работа с deque из collections
  36. Иерархия классов в Python
  37. Перемешивание списка с shuffle()
  38. Фильтрация списка от «ложных» значений
  39. Работа с файлами в Python
  40. Создание словаря в Python
  41. Импорт модулей в Python 3.12
  42. Переопределение оператора % для объектов
  43. Изменение логики работы с временем
  44. Создание таблиц в Python с PrettyTable
  45. Создание списка дат
  46. Форматирование строк в Python

Marketello читают маркетологи из крутых компаний