generated from hexlet-basics/exercises-template
-
Notifications
You must be signed in to change notification settings - Fork 3
/
description.ru.yml
69 lines (48 loc) · 2.74 KB
/
description.ru.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
name: Тернарный оператор
theory: |
Посмотрите на определение функции, которая возвращает модуль переданного числа:
```python
def abs(number):
if number >= 0:
return number
return -number
```
Но можно записать более лаконично. Для этого справа от `return` должно быть выражение, но `if` — это инструкция, а не выражение. В Python есть конструкция, которая работает как `if-else`, но считается выражением. Она называется **тернарный оператор** — единственный оператор в Python, который требует три операнда:
```python
def abs(number):
return number if number >= 0 else -number
```
Общий паттерн выглядит так: `<expression on true> if <predicate> else <expression on false>`.
Давайте перепишем начальный вариант `get_type_of_sentence()` аналогично.
Было:
```python
def get_type_of_sentence(sentence):
last_char = sentence[-1]
if last_char == '?':
return 'question'
return 'normal'
```
Стало:
```python
def get_type_of_sentence(sentence):
last_char = sentence[-1]
return 'question' if last_char == '?' else 'normal'
print(get_type_of_sentence('Hodor')) # => normal
print(get_type_of_sentence('Hodor?')) # => question
```
https://replit.com/@hexlet/python-basics-conditionals-ternary-operator
Тернарный оператор можно вкладывать в тернарный оператор. Но не нужно так делать, так как такой код тяжело читать и отлаживать.
instructions: |
Реализуйте функцию `flip_flop()`, которая принимает на вход строку и, если эта строка равна `'flip'`, возвращает строку `'flop'`. В противном случае функция должна вернуть `'flip'`.
Примеры вызова:
```python
print(flip_flop('flip')) # => 'flop'
print(flip_flop('flop')) # => 'flip'
```
Попробуйте написать два варианта функции: с обычным if-else, и с тернарным оператором.
tips: []
definitions:
- name: Тернарный оператор
description: |
способ превратить простую условную инструкцию в выражение, например, `number if number >= 0 else -number`.