mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-21 18:54:20 +01:00
Translate What's wrong with booleans? example
This commit is contained in:
parent
8a1536986f
commit
a0069d842e
90
translations/README-ru.md
vendored
90
translations/README-ru.md
vendored
@ -1350,3 +1350,93 @@ SyntaxError: EOF while scanning triple-quoted string literal
|
||||
+ `'''` и `"""` также являются разделителями строк в Python, что вызывает SyntaxError, поскольку интерпретатор Python ожидал завершающую тройную кавычку в качестве разделителя при сканировании текущего встреченного строкового литерала с тройной кавычкой.
|
||||
|
||||
---
|
||||
|
||||
### ▶ Что не так с логическими значениями?
|
||||
<!-- Example ID: 0bba5fa7-9e6d-4cd2-8b94-952d061af5dd --->
|
||||
1\.
|
||||
|
||||
```py
|
||||
# Простой пример счетчика логических переменных и целых чисел
|
||||
# в итерируемом объекте со значениями разных типов данных
|
||||
mixed_list = [False, 1.0, "some_string", 3, True, [], False]
|
||||
integers_found_so_far = 0
|
||||
booleans_found_so_far = 0
|
||||
|
||||
for item in mixed_list:
|
||||
if isinstance(item, int):
|
||||
integers_found_so_far += 1
|
||||
elif isinstance(item, bool):
|
||||
booleans_found_so_far += 1
|
||||
```
|
||||
|
||||
**Результат:**
|
||||
```py
|
||||
>>> integers_found_so_far
|
||||
4
|
||||
>>> booleans_found_so_far
|
||||
0
|
||||
```
|
||||
|
||||
|
||||
2\.
|
||||
```py
|
||||
>>> some_bool = True
|
||||
>>> "wtf" * some_bool
|
||||
'wtf'
|
||||
>>> some_bool = False
|
||||
>>> "wtf" * some_bool
|
||||
''
|
||||
```
|
||||
|
||||
3\.
|
||||
|
||||
```py
|
||||
def tell_truth():
|
||||
True = False
|
||||
if True == False:
|
||||
print("I have lost faith in truth!")
|
||||
```
|
||||
|
||||
**Результат (< 3.x):**
|
||||
|
||||
```py
|
||||
>>> tell_truth()
|
||||
I have lost faith in truth!
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 💡 Объяснение:
|
||||
|
||||
* `bool` это подкласс класса `int` в Python
|
||||
|
||||
```py
|
||||
>>> issubclass(bool, int)
|
||||
True
|
||||
>>> issubclass(int, bool)
|
||||
False
|
||||
```
|
||||
|
||||
* `True` и `False` - экземпляры класса `int`
|
||||
```py
|
||||
>>> isinstance(True, int)
|
||||
True
|
||||
>>> isinstance(False, int)
|
||||
True
|
||||
```
|
||||
|
||||
* Целочисленное значение `True` равно `1`, а `False` равно `0`.
|
||||
```py
|
||||
>>> int(True)
|
||||
1
|
||||
>>> int(False)
|
||||
0
|
||||
```
|
||||
|
||||
* Объяснение на [StackOverflow](https://stackoverflow.com/a/8169049/4354153).
|
||||
|
||||
* Изначально в Python не было типа `bool` (использовали 0 для false и ненулевое значение 1 для true). В версиях 2.x были добавлены `True`, `False` и тип `bool`, но для обратной совместимости `True` и `False` нельзя было сделать константами. Они просто были встроенными переменными, и их можно было переназначить.
|
||||
|
||||
* Python 3 был несовместим с предыдущими версиями, эту проблему наконец-то исправили, и поэтому последний фрагмент не будет работать с Python 3.x!
|
||||
|
||||
---
|
||||
|
Loading…
Reference in New Issue
Block a user