1
0
mirror of https://github.com/satwikkansal/wtfpython synced 2024-06-01 19:08:04 +02:00

Translate Well, something is fishy example

This commit is contained in:
Vadim Nifadev 2024-04-24 16:02:55 +03:00
parent eab5d5968e
commit 551b251c05

View File

@ -3371,3 +3371,45 @@ def energy_receive():
* `numpy.empty()` возвращает следующий свободный участок памяти без его повторной инициализации. Этот участок памяти просто оказывается тем же самым, который был только что освобожден (обычно, но не всегда).
---
### ▶ Что-то не так...
<!-- Example ID: cb6a37c5-74f7-44ca-b58c-3b902419b362 --->
```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
```
---
---