1
0
mirror of https://github.com/satwikkansal/wtfpython synced 2024-11-24 12:04:24 +01:00

Translate is not ...is (not ...) example

This commit is contained in:
Vadim Nifadev 2024-04-19 14:31:02 +03:00
parent 259fb23c7b
commit 497b9de72b

View File

@ -844,7 +844,7 @@ array_4 = [400, 500, 600]
[401, 501, 601, 402, 502, 602, 403, 503, 603]
```
#### 💡 Пояснение
#### 💡 Объяснение
- В выражении [генераторе](https://wiki.python.org/moin/Generators) условие `in` оценивается во время объявления, но условие `if` оценивается во время выполнения.
- Перед выполнением кода, значение переменной `array` изменяется на список `[2, 8, 22]`, а поскольку из `1`, `8` и `15` только счетчик `8` больше `0`, генератор выдает только `8`.
@ -856,3 +856,21 @@ array_4 = [400, 500, 600]
> Только крайнее for-выражение исполняется немедленно, остальные выражения откладываются до запуска генератора.
---
### ▶ `is not ...` не является `is (not ...)`
<!-- Example ID: b26fb1ed-0c7d-4b9c-8c6d-94a58a055c0d --->
```py
>>> 'something' is not None
True
>>> 'something' is (not None)
False
```
#### 💡 Объяснение
- `is not` является единым бинарным оператором, и его поведение отличается от раздельного использования `is` и `not`.
- `is not` имеет значение `False`, если переменные по обе стороны оператора указывают на один и тот же объект, и `True` в противном случае.
- В примере `(not None)` оценивается в `True`, поскольку значение `None` является `False` в булевом контексте, поэтому выражение становится `'something' is True`.
---