From 551b251c054587547c0a9324506558e80e0f776d Mon Sep 17 00:00:00 2001 From: Vadim Nifadev <36514612+nifadyev@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:02:55 +0300 Subject: [PATCH] Translate Well, something is fishy example --- translations/README-ru.md | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/translations/README-ru.md b/translations/README-ru.md index 507222f..b17447a 100644 --- a/translations/README-ru.md +++ b/translations/README-ru.md @@ -3371,3 +3371,45 @@ def energy_receive(): * `numpy.empty()` возвращает следующий свободный участок памяти без его повторной инициализации. Этот участок памяти просто оказывается тем же самым, который был только что освобожден (обычно, но не всегда). --- + + +### ▶ Что-то не так... + +```py +def square(x): + """ + Простая функция по вычислению квадрата числа путем суммирования. + """ + sum_so_far = 0 + for counter in range(x): + sum_so_far = sum_so_far + x + return sum_so_far +``` + +**Результат (Python 2.x):** + +```py +>>> square(10) +10 +``` + +Разве не должно быть 100? + +**Заметка:** Если у вас не получается воспроизвести это, попробуйте запустить файл [mixed_tabs_and_spaces.py](/mixed_tabs_and_spaces.py) через оболочку. + +#### 💡 Объяснение + +* **Не смешивайте табы и пробелы!** Символ, непосредственно предшествующий return, является "табом", а код в других местах примера имеет отступ в 4 пробела. +* Вот как Python обрабатывает табы: + + > Сначала табы заменяются (слева направо) на пробелы от одного до восьми так, чтобы общее количество символов до замены включительно было кратно восьми <...>. +* Таким образом, "табы" в последней строке функции `square` заменяется восемью пробелами, и она попадает в цикл. +* Python 3 достаточно любезен, чтобы автоматически выдавать ошибку для таких случаев. + + **Результат (Python 3.x):** + ```py + TabError: inconsistent use of tabs and spaces in indentation + ``` + +--- +---