mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-12-22 12:50:23 +01:00
Translate Well, something is fishy example
This commit is contained in:
parent
eab5d5968e
commit
551b251c05
42
translations/README-ru.md
vendored
42
translations/README-ru.md
vendored
@ -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
|
||||
```
|
||||
|
||||
---
|
||||
---
|
||||
|
Loading…
x
Reference in New Issue
Block a user