generated from hexlet-basics/exercises-template
-
Notifications
You must be signed in to change notification settings - Fork 3
/
description.ru.yml
67 lines (45 loc) · 3.73 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
---
name: Именованные аргументы
theory: |
В этом уроке разберем, какие параметры существуют, чем они отличаются и в каких случаях их применять.
**Аргументы** — это данные, которые передаются в вызов функции. Они бывают двух типов:
Первый тип — **позиционные аргументы**. Они передаются в том же порядке, в котором определены параметры функции:
```python
# (text, length)
truncate('My Text', 3)
```
Второй тип — **именованные аргументы**. Они передаются не просто как значения, а как пара «имя=значение». Поэтому их можно передавать в любом порядке:
```python
# Аргументы переданы в другом порядке
truncate(length=3, text='My Text')
```
Если внимательно посмотреть на два примера выше, то можно понять, что это две одинаковые функции.
Теперь разберемся, в каких случаях нужно применять эти типы аргументов.
Выбор типа параметра зависит от того, кто вызывает функцию.
Есть две причины использовать именованные аргументы:
* Они повышают читаемость, так как сразу видно имена
* Можно не указывать все промежуточные параметры, которые нам сейчас не нужны
Последнее полезно, если у функции много необязательных параметров. Посмотрим на примере:
```python
def f(a=1, b=2, c=None, d=4):
print(a, b, c, d)
# Нужно передать только d, но приходится передавать все
f(1, 2, 3, 8)
# Именованные аргументы позволяют передавать только d
# Для остальных аргументов используются значения по умолчанию
f(d=8)
```
Именованные аргументы можно передавать одновременно с позиционными. Тогда позиционные должны идти в самом начале:
```python
# Передаем только a (позиционно) и d (как именованный)
f(3, d=3)
```
instructions: |
Реализуйте функцию `trim_and_repeat()`, которая принимает три параметра: строку, `offset` — число символов, на которое нужно обрезать строку слева и `repetitions` — количество обрезанных строк, которые нужно вывести. Функция обрезает строку и повторяет ее столько раз, чтобы общее количество обрезанных строк равнялось `repetitions`. Функция должна записать результат в одну строку и вернуть его.
Число символов для среза по умолчанию равно 0, а повторений — 1.
```python
text = 'python'
print(trim_and_repeat(text, offset=3, repetitions=2)) # => honhon
print(trim_and_repeat(text, repetitions=3)) # => pythonpythonpython
print(trim_and_repeat(text)) # => python
```