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

Рекомендуется использовать инструкцию только для проверки внутреннего состояния программы — ситуаций, которые не должны происходить вовсе, которые нельзя обработать или это не имеет смысла (обычно это является указанием на то, что код программы содержит ошибку). Инструкция также может использоваться для документирования ожиданий (например, входных параметров или результата). В остальных случаях следует определять свои типы исключений.

    passed = False
assert passed, 'Not passed' # Поднимается исключение.
# assert passed # Можно и не указывать текст описания, но рекомендуется.

# Запись выше эквивалентна следующей конструкции:
if __debug__:
if not passed:
raise AssertionError('Not passed')

# Пример правильного переноса строки описания:
assert a, ('Long exception '
'description chunked.')

# А теперь пример неправильного (передача кортежа),
# при котором проверка всегда проходит без ошибок:
assert (a, 'Long exception '
'description chunked.')

В текущей реализации __debug__ — встроенная константа, по умолчанию имеющая значение True. Если интерпретатор запущен в режиме оптимизации (с флагом командной строки -O), значение константы становится False, а генератор кода перестаёт производить байткод для рассматриваемой инструкции. Таким образом, отключив проверки, но не убирая их из кода, можно снизить неизбежные для них накладные расходы.

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.