mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 02:54:25 +01:00
Translate Not knot example
This commit is contained in:
parent
293575b7c4
commit
5eeb1053aa
28
translations/README-ru.md
vendored
28
translations/README-ru.md
vendored
@ -1291,4 +1291,32 @@ True
|
||||
```
|
||||
- Это означает, что когда синтаксический анализатор встречает обратный слэш в необработанной строке, он ожидает, что за ней последует другой символ. А в нашем случае (`print(r"\")`) обратная слэш экранирует двойную кавычку, оставив парсер без завершающей кавычки (отсюда `SyntaxError`). Вот почему обратный слеш не работает в конце необработанной строки.
|
||||
|
||||
--
|
||||
|
||||
|
||||
### ▶ Не узел! (eng. not knot!)
|
||||
<!-- Example ID: 7034deb1-7443-417d-94ee-29a800524de8 --->
|
||||
```py
|
||||
x = True
|
||||
y = False
|
||||
```
|
||||
|
||||
**Результат:**
|
||||
```py
|
||||
>>> not x == y
|
||||
True
|
||||
>>> x == not y
|
||||
File "<input>", line 1
|
||||
x == not y
|
||||
^
|
||||
SyntaxError: invalid syntax
|
||||
```
|
||||
|
||||
#### 💡 Объяснение
|
||||
|
||||
* Старшинство операторов влияет на выполнение выражения, и оператор `==` имеет более высокий приоритет, чем оператор `not` в Python.
|
||||
* Поэтому `not x == y` эквивалентно `not (x == y)`, что эквивалентно `not (True == False)`, в итоге равное `True`.
|
||||
* Но `x == not y` вызывает `SyntaxError`, потому что его можно считать эквивалентным `(x == not) y`, а не `x == (not y)`, что можно было бы ожидать на первый взгляд.
|
||||
* Парсер ожидал, что ключевое слово `not` будет частью оператора `not in` (потому что оба оператора `==` и `not in` имеют одинаковый приоритет), но после того, как он не смог найти ключевое слово `in`, следующее за `not`, он выдает `SyntaxError`.
|
||||
|
||||
---
|
||||
|
Loading…
Reference in New Issue
Block a user