mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 02:54:25 +01:00
Translate Ellipsis example
This commit is contained in:
parent
193c839163
commit
be9c3bb0ae
61
translations/README-ru.md
vendored
61
translations/README-ru.md
vendored
@ -3141,3 +3141,64 @@ Try block executed successfully...
|
|||||||
- Блок `else` после блока `try` также называется "блоком завершения", поскольку достижение `else` в операторе `try` означает, что блок попыток действительно успешно завершен.
|
- Блок `else` после блока `try` также называется "блоком завершения", поскольку достижение `else` в операторе `try` означает, что блок попыток действительно успешно завершен.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Многоточие *
|
||||||
|
<!-- Example ID: 969b7100-ab3d-4a7d-ad7d-a6be16181b2b --->
|
||||||
|
```py
|
||||||
|
def some_func():
|
||||||
|
Ellipsis
|
||||||
|
```
|
||||||
|
|
||||||
|
**Результат**
|
||||||
|
```py
|
||||||
|
>>> some_func()
|
||||||
|
# Ни вывода, ни ошибки
|
||||||
|
|
||||||
|
>>> SomeRandomString
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<stdin>", line 1, in <module>
|
||||||
|
NameError: name 'SomeRandomString' is not defined
|
||||||
|
|
||||||
|
>>> Ellipsis
|
||||||
|
Ellipsis
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 💡 Объяснение
|
||||||
|
- В Python, `Ellipsis` - глобальный встроенный объект, эквивалентный `...`.
|
||||||
|
```py
|
||||||
|
>>> ...
|
||||||
|
Ellipsis
|
||||||
|
```
|
||||||
|
- Многоточие может использоваться в нескольких случаях,
|
||||||
|
+ В качестве заполнителя для кода, который еще не написан (аналогично оператору `pass`)
|
||||||
|
+ В синтаксисе срезов (slices) для представления полных срезов в оставшемся направлении
|
||||||
|
``py
|
||||||
|
>>> import numpy as np
|
||||||
|
>>> three_dimensional_array = np.arange(8).reshape(2, 2, 2)
|
||||||
|
array([
|
||||||
|
[
|
||||||
|
[0, 1],
|
||||||
|
[2, 3]
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
[4, 5],
|
||||||
|
[6, 7]
|
||||||
|
]
|
||||||
|
])
|
||||||
|
```
|
||||||
|
Таким образом, наш `трехмерный_массив` представляет собой массив массивов массивов. Допустим, мы хотим вывести второй элемент (индекс `1`) всех внутренних массивов, мы можем использовать `Ellipsis`, чтобы обойти все предыдущие измерения
|
||||||
|
``py
|
||||||
|
>>> three_dimensional_array[:,::,1]
|
||||||
|
array([[1, 3],
|
||||||
|
[5, 7]])
|
||||||
|
>>> three_dimensional_array[..., 1] # использование Ellipsis.
|
||||||
|
array([[1, 3],
|
||||||
|
[5, 7]])
|
||||||
|
```
|
||||||
|
Примечание: это будет работать для любого количества измерений. Можно даже выбрать срез в первом и последнем измерении и игнорировать средние (`n_dimensional_array[firs_dim_slice, ..., last_dim_slice]`)
|
||||||
|
+ В [подсказках типов](https://docs.python.org/3/library/typing.html) для указания только части типа (например, `(Callable[..., int]` или `Tuple[str, ...]`))
|
||||||
|
+ Вы также можете использовать `Ellipsis` в качестве аргумента функции по умолчанию (в случаях, когда вы хотите провести различие между сценариями "аргумент не передан" и "значение не передано").
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user