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
Copy file name to clipboardExpand all lines: modules/48-conditionals/30-if/ru/EXERCISE.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
Реализуйте функцию `guess_number()`, которая принимает число и проверяет, равно ли число заданному (пусть это будет 42). Если равно, то функция должна вернуть строку `'You win!'`, в противном случае нужно вернуть строку `'Try again!'`.
Логические выражения позволяют проверять разные условия. Но сами по себе они ничего не делают — только возвращают `True` или `False`. Чтобы программа могла выполнять разные действия в зависимости от результата, в Python есть специальная конструкция `if`.
1
2
2
-
В этом уроке вы узнаете, что с помощью условных конструкций можно изменить поведение программы, что будет зависеть от проверяемых условий. Благодаря этому вы сможете писать сложные программы, которые ведут себя в зависимости от ситуации.
3
+
```python
4
+
if5>3:
5
+
print("Yes, it is true")
6
+
```
7
+
8
+
Здесь строка `"Yes, it is true"` напечатается, потому что условие `5 > 3` истинно.
3
9
4
-
Для примера рассмотрим функцию, которая определяет тип переданного предложения. Для начала она будет отличать обычные предложения от вопросительных:
10
+
## Отступы в блоках
11
+
12
+
После слова `if` пишется условие, затем ставится двоеточие, и начинается блок кода с отступом. Все строки с одинаковым отступом входят в один блок:
5
13
6
14
```python
7
-
defget_type_of_sentence(sentence):
15
+
if10==10:
16
+
print("First")
17
+
print("Second")
18
+
19
+
print("Goodbye!")
20
+
```
21
+
22
+
Здесь напечатаются `"First"` и `"Second"`, потому что условие выполнилось. А `"Goodbye!"` напечатается в любом случае, так как она уже за пределами блока.
23
+
24
+
## Использование if внутри функции
25
+
26
+
Рассмотрим функцию, которая определяет тип переданного предложения. Если оно оканчивается на знак вопроса, функция вернёт `"question"`. В противном случае — `"normal"`.
27
+
28
+
```python
29
+
defget_type_of_sentence(sentence: str) -> str:
8
30
last_char = sentence[-1]
9
31
if last_char =='?':
10
32
return'question'
@@ -14,21 +36,35 @@ print(get_type_of_sentence('Hodor')) # => normal
Здесь используется сразу два `return`. Работа функции устроена так:
40
+
41
+
* если условие внутри `if` выполняется, срабатывает `return 'question'` и функция завершается;
42
+
* если условие не выполняется, управление переходит на следующую строку — `return 'normal'`.
17
43
18
-
`if` — конструкция языка, которая управляет порядком выполнения инструкций. После слова `if` ей передается выражение-предикат, и в конце ставится двоеточие. После этого описывается блок кода. Он выполнится, если предикат — истина.
44
+
Таким образом, у функции есть несколько возможных точек выхода. Это частая практика: в зависимости от условий функция может завершаться по-разному.
19
45
20
-
Если предикат — ложь, то блок кода пропускается, и функция продолжает свое выполнение дальше. В нашем случае следующая строчка кода — `return 'normal'` — заставит функцию вернуть строку и завершиться.
46
+
Несмотря на то что функция `get_type_of_sentence` использует `if`, она не является предикатом — она возвращает строки. А вот пример предиката: функция, которая проверяет, достаточно ли денег для покупки. Она возвращает логическое значение в зависимости от условия.
21
47
22
-
`return` может находиться в любом месте функции — даже внутри блока кода с условием.
Обратите внимание, на отступы. В Python, в отличие от других языков, блоки кода принято выделять не скобками, а новой строкой с отступом. Отступы обычно состоят из 4 пробелов или одного символа табуляции, который нужно настроить в редакторе на использование пробелов. Все строки в одном блоке должны иметь одинаковый отступ. Увеличение отступа означает начало нового блока, а уменьшение отступа означает конец блока.
58
+
Здесь используется `if`, и результатом работы функции всегда будет `True` или `False`.
59
+
60
+
## if и логические выражения
61
+
62
+
Функцию `has_enough_money` мы написали через `if`. Но в таком виде она могла бы обойтись и без него, потому что результат сравнения сам по себе уже является логическим выражением.
25
63
26
64
```python
27
-
if a ==42:
28
-
# отступ и начало блока if
29
-
# все строки кода с одним отступом выполняются в одном блоке
В простых случаях лучше сразу возвращать такое выражение. `if` нужен там, где внутри блока выполняются дополнительные действия, а не только возврат результата. Чем более сложные программы мы будем писать, тем чаще такие ситуации начнут встречаться.
Copy file name to clipboardExpand all lines: modules/48-conditionals/40-if-else/ru/EXERCISE.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
Реализуйте функцию `normalize_url()`, которая выполняет нормализацию данных. Она принимает адрес сайта и возвращает его с `https://` в начале.
3
2
4
3
Функция принимает адреса в виде `АДРЕС` или `http://АДРЕС`, но всегда возвращает адрес в виде `https://АДРЕС`. На вход функции также может поступить адрес в уже нормализованном виде `https://АДРЕС`, в этом случае ничего менять не надо.
Copy file name to clipboardExpand all lines: modules/48-conditionals/40-if-else/ru/README.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,7 @@
1
-
2
1
Теперь изменим функцию из предыдущего урока так, чтобы она возвращала не просто тип предложения, а целую строку `Sentence is normal` или `Sentence is question`:
Copy file name to clipboardExpand all lines: modules/48-conditionals/50-else-if/ru/EXERCISE.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
На электронной карте Вестероса, которую реализовал Сэм, союзники Старков отображены зелёным кружком, враги — красным, а нейтральные семьи — серым.
3
2
4
3
Напишите для Сэма функцию `who_is_this_house_to_starks()`, которая принимает на вход фамилию семьи и возвращает одно из трёх значений: `'friend'`, `'enemy'`, `'neutral'`.
Copy file name to clipboardExpand all lines: modules/48-conditionals/60-ternary-operator/ru/EXERCISE.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
Реализуйте функцию `flip_flop()`, которая принимает на вход строку и, если эта строка равна `'flip'`, возвращает строку `'flop'`. В противном случае функция должна вернуть `'flip'`.
Copy file name to clipboardExpand all lines: modules/48-conditionals/65-match/ru/README.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,3 @@
1
-
2
-
Многие языки в дополнение к условной конструкции `if` включают в себя `switch`. С выходом версии Python 3.10 также был добавлен оператор с аналогичной функциональностью — `match`. В этом уроке мы познакомимся с этим оператором.
3
-
4
1
Оператор `match` — это специализированная версия `if`, которую создали для особых ситуаций. Например, ее нужно использовать там, где есть цепочка `if else` с проверками на равенство:
0 commit comments