Моя программа не работает? Что делать?

Моя программа на Python выдаёт какую-то странную ошибку! Надо срочно где-нибудь спросить, а что же в питоне не так? Не в моей же программе дело!

Скорее всего, именно в программе где-то ошибка. Будем разбираться, как понять, в чём именно.

Моя программа не запускается

Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.

Причина: Программа запускается. Просто после окончания выполнения (после выполнения всего кода или при возникновении исключения) программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы. И выглядит это так, как будто программа не запускается.

Решение: запускать программу через IDLE или через консоль.

Теперь же рассмотрим ситуации, когда программа запускается, но красным текстом (в IDLE так, в других средах программирования может быть другой цвет, это неважно) пишется какая-то ошибка.

Синтаксические ошибки

Это ошибки в синтаксисе. Чаще всего это забытое двоеточие, скобка или другой знак; отсутствующий, либо наоборот, лишний отступ.

IDLE программу даже не запустит, а выдаст всплывающее окно с ошибкой. Например, такое:

Синтаксическая ошибка. Пример, в котором забыто двоеточие

Здесь написано SyntaxError - expected ':'. Это переводится как "ожидается двоеточие". И да, без знания английского в Python никуда, даже если учиться по русскоязычным материалам. Если не знаете, как переводится то или иное сообщение - вбиваете в переводчик: deepl.com, или translate.google.com.

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

Вот ещё несколько примеров. Попробуйте по сообщению об ошибке понять, что неправильно и как исправить.

if a > 0:
print(a)
SyntaxError: expected an indented block after 'if' statement on line 1
if 2 + 2 = 5:
    print('Really?')

SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?

Ошибки времени выполнения

Ошибки времени выполнения (или Runtime errors) - это все те ошибки, которые возникают при выполнении кода. В отличие от синтаксических ошибок, которые возникают на этапе синтаксического разбора программы, то есть ещё до начала выполнения программы.

Пример подобной ошибки:

a = 1
b = 2
print(a + B)
Traceback (most recent call last):
  File "C:/Users/Дмитрий/Desktop/1.py", line 3, in <module>
    print(a + B)
NameError: name 'B' is not defined. Did you mean: 'b'?

Python, особенно в последних версиях, крайне точно описывает, где ошибка, в чём ошибка, а иногда и как исправить. Впрочем, с "как исправить" интерпретатор Python далеко не всегда точен, думать надо своей головой. Но здесь всё правильно и лаконично: имя 'B' не определено. Вы имели в виду: 'b'? Заменив B на b, мы избавимся от ошибки.

Далее можно приводить великое множество примеров ошибок и решений этих проблем, однако почти во всех случаях (а новичку тем более) достаточно внимательно прочитать описание.