You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Операции сравнения — это такие же выражения, как и арифметические. Это значит, что в них можно подставлять не только готовые значения, но и другие выражения как в примере выше: `word[0]`. Например, вместо числа можно использовать результат работы функции `len`, которая возвращает длину строки:
22
+
Операции сравнения — это такие же выражения, как и арифметические. Это значит, что в них можно подставлять не только готовые значения, но и другие выражения как в примере выше: `word[0]`. Например, вместо числа можно использовать результат работы функции `len`, которая возвращает длину строки:
23
23
24
24
```python
25
25
print(len("apple") >3) # => True, потому что len("apple") = 5
26
26
print(len("hi") >3) # => False, потому что len("hi") = 2
27
27
```
28
28
29
29
В примере выше, сначала выполняется функция `len("apple")`, результатом будет число `5`. Потом это число сравнивается с `3`. То есть порядок вычисления такой:
30
-
1. Сначала считаются аргументы выражения (например, длина строки).
31
-
2. Потом выполняется операция сравнения.
30
+
1. Сначала считаются аргументы выражения (например, длина строки).
31
+
2. Потом выполняется операция сравнения.
32
32
33
33
Так можно комбинировать разные операции, получая более сложные проверки.
34
34
35
35
## Полезные предикаты
36
36
37
-
У строк в Python есть много встроенных методов-предикатов. Они возвращают `True` или `False` и помогают проверять разные свойства строки. Ниже приведены самые часто используемые:
37
+
У строк в Python есть много встроенных методов-предикатов. Они возвращают `True` или `False` и помогают проверять разные свойства строки. Ниже приведены самые часто используемые:
38
38
39
39
```python
40
40
print("hello".startswith("he")) # True — строка начинается с "he"
В Python значения разных типов можно использовать напрямую в логических выражениях. При этом они ведут себя как `True` или `False` в зависимости от того, относятся ли к категории **truthy** или **falsy**.
1
+
В Python значения разных типов можно использовать напрямую в логических выражениях. При этом они ведут себя как `True` или `False` в зависимости от того, относятся ли к категории **truthy** или **falsy**.
2
2
3
3
## Falsy и Truthy значения
4
4
5
-
В Python есть фиксированный набор значений, которые считаются **ложными** (`falsy`):
5
+
В Python есть фиксированный набор значений, которые считаются **ложными** (`falsy`):
6
6
7
-
*`0` — любое нулевое число (`0`, `0.0`)
8
-
* пустая строка `""`
9
-
* пустые коллекции — `[]`, `{}`, `set()`, `()` (мы пока их не проходили)
10
-
* специальное значение `None`
7
+
*`0` — любое нулевое число (`0`, `0.0`)
8
+
* пустая строка `""`
9
+
* пустые коллекции — `[]`, `{}`, `set()`, `()` (мы пока их не проходили)
10
+
* специальное значение `None`
11
11
12
-
Все остальные значения считаются **истинными** (`truthy`). Например:
12
+
Все остальные значения считаются **истинными** (`truthy`). Например:
13
13
14
-
* любое ненулевое число (`1`, `-3.5`)
15
-
* непустая строка (`"hi"`, `"0"`)
16
-
* непустые коллекции (`[1]`, `{"a": 1}`, `(0,)`) (будем изучать на Хекслете)
14
+
* любое ненулевое число (`1`, `-3.5`)
15
+
* непустая строка (`"hi"`, `"0"`)
16
+
* непустые коллекции (`[1]`, `{"a": 1}`, `(0,)`) (будем изучать на Хекслете)
17
17
18
18
## Пример с делением на остаток
19
19
@@ -22,40 +22,40 @@ result = 10 % 2 == 0 and "yes" or "no"
2. Потом работает `and`: так как слева истина, результатом становится `"yes"`.
29
+
3. Так как `"yes"` — truthy, оператор `or` возвращает именно его.
30
30
31
31
## Как работают логические выражения
32
32
33
-
В Python логические выражения возвращают не обязательно `True` или `False`. Они возвращают один из своих операндов:
33
+
В Python логические выражения возвращают не обязательно `True` или `False`. Они возвращают один из своих операндов:
34
34
35
-
* оператор `and` возвращает первый falsy-операнд или последний truthy,
36
-
* оператор `or` возвращает первый truthy-операнд или последний falsy.
35
+
* оператор `and` возвращает первый falsy-операнд или последний truthy,
36
+
* оператор `or` возвращает первый truthy-операнд или последний falsy.
37
37
38
-
Поэтому результатом может быть строка, число или любой другой объект, участвующий в выражении.
38
+
Поэтому результатом может быть строка, число или любой другой объект, участвующий в выражении.
39
39
40
40
## Примеры
41
41
42
42
```python
43
-
print(7%2==0and"even"or"odd")
43
+
print(7%2==0and"even"or"odd")
44
44
# => "odd"
45
45
46
-
print((""and"not empty") or"empty")
46
+
print((""and"not empty") or"empty")
47
47
# => "empty"
48
48
49
-
print(("hello"and"not empty") or"empty")
49
+
print(("hello"and"not empty") or"empty")
50
50
# => "not empty"
51
51
52
-
print((-5>0and"positive") or"non-positive")
52
+
print((-5>0and"positive") or"non-positive")
53
53
# => "non-positive"
54
54
```
55
55
56
56
## Использование в функциях
57
57
58
-
Особенность truthy и falsy значений удобно применять в функциях. Например, можно написать функцию, которая возвращает текст, если он непустой, или значение по умолчанию, если строка пустая.
58
+
Особенность truthy и falsy значений удобно применять в функциях. Например, можно написать функцию, которая возвращает текст, если он непустой, или значение по умолчанию, если строка пустая.
0 commit comments