Я знаю, что точки с запятой не нужны в Python, но их можно использовать для перебора нескольких операторов на одну строку, например.
>>> x = 42; y = 54
Я всегда думал, что точка с запятой эквивалентна разрыву строки. Поэтому я был немного удивлен, узнав (h/t Ned Batchelder on Twitter), что двойной точкой с запятой является SyntaxError:
>>> x = 42
>>> x = 42;
>>> x = 42;;
File "<stdin>", line 1
x = 42;;
^
SyntaxError: invalid syntax
Я предположил, что последняя программа была эквивалентна x = 42\n\n
. Id считал, что выражение между точками с запятой трактуется как пустая строка, no-op. Видимо, нет.
Почему это ошибка?