-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path7_functions_2.py
157 lines (110 loc) · 7.44 KB
/
7_functions_2.py
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
########################################################################################################################
# 39 - Создание (определение) функций
"""
Задание
Реализуйте функцию print_jaimes_line, которая принимает один аргумент — строку, и выводит реплику на экран в формате
JAIME: переданная_строка
Как назвать переменную, которая будет аргументом — решайте сами
"""
# Solution:
def print_jaimes_line(a):
print('JAIME: ' + a)
########################################################################################################################
# 40 - Аргументы, переменные и инструкции
"""
# Задание
# Сэм составляет множество карт, и ему часто нужно выводить на экран повторяющиеся символы для визуализации маршрутов
# Например, так Сэм иллюстрирует узкие дороги между городами:
# Meereen =-=-=-=- Myr
#
# А так иллюстрирует широкие трассы:
# Vaes Dothrak ======== Vahar
#
# Строки в Python, это последовательности (списки, наборы) символов в нужном порядке. В документации Python приведены
# операции, общие для всех последовательностей. Так, любую последовательность - в том числе и строку - можно повторить
# несколько раз, умножив оную на число (это не будет нарушением типизации, ведь именно такое сочетание типов
# - последовательность слева и число справа - предусмотрено создателями языка для операции умножения):
# print('=-' * 4)
# =-=-=-=-
#
# Сэм не очень доволен. Ему нужно нарисовать сотни маршрутов разной длины с разными символами. Неудобно размножать
# строки сотни раз и сотни раз вызывать print
# Напишите для Сэма функцию print_seq, которая сама выводит на экран получившиеся повторения. Она принимает два
# аргумента — строку и число, и выводит повторяющуюся строку на экран. Для генерации строки используйте “размножение”
# строк
# Вот пример того, как Сэм будет использовать написанную вами print_seq:
# print_seq('=-', 4)
#
"""
# Solution:
def print_seq(text, num):
print(text * num)
########################################################################################################################
# 41 - Возврат значений
"""
Задание
Сэм создаёт генеалогические деревья разных семей. Ему постоянно приходится рассчитывать количество места, занимаемое
именами родителей на экране#
Создайте функцию get_parent_names_total_length для Сэма. Она должна принимать один аргумент — имя ребенка
и возвращать количество символов в именах матери и отца суммарно. Функция не должна выводить ничего на экран,
только возвращать число
Для реализации используйте уже существующие функции parent_for и len:
Получение имени матери parent_for(child, 'mother'), где child — имя ребёнка.
Получение имени отца parent_for(child, 'father'), где child — имя ребёнка
Получение длины строки: len(str), где str — строка
"""
# Solution:
from hexlet.code_basics import parent_for
# BEGIN
def get_parent_names_total_length(name):
return len(parent_for(name, 'mother')) + len(parent_for(name, 'father'))
# END
########################################################################################################################
# 42 - Возврат по умолчанию
"""
Задание
Это немного странное задание, но для тренировки будет полезным. Реализуйте функцию get_none, которая просто возвращает
None и больше ничего не делает
"""
# Solution:
def get_none():
return None
########################################################################################################################
# 43 - Параметры по умолчанию
"""
Задание
Реализуйте функцию custom_parent_for, которая принимает два аргумента:
Строку — имя ребёнка.
Строку с указанием родителя. Этот аргумент должен по умолчанию быть 'father'.
"""
# Функция должна возвращать имя соответствующего родителя
# Solution:
from hexlet.code_basics import parent_for
# BEGIN
def custom_parent_for(name, parent='father'):
return parent_for(name, parent)
# END
########################################################################################################################
# 44 - Именование
"""
Задание
Реализуйте функцию get_formatted_birthday, которая принимает на вход три параметра: день, месяц и год рождения, а
возвращает их строкой в отформатированном виде, например: 30-02-1953
День и месяц нужно форматировать так, чтобы при необходимости добавлялся 0 слева. Например, если в качестве месяца
пришла цифра 7, то в выходной строке она должна быть представлена как 07
"""
# Solution:
def get_formatted_birthday(day, month, year):
return '%02d-%02d-%4s' % (day, month, year)
########################################################################################################################
# 45 - Окружение
"""
Задание
Это задание не связано напрямую с уроком, это просто еще одно полезное упражнение по работе с функциями
Напишите функцию get_age_difference, которая принимает два года рождения и возвращает строку с разницей в возрасте в
виде The age difference is 11
"""
# Solution:
def get_age_difference(year_1, year_2):
return 'The age difference is ' + str(abs(year_1 - year_2))
########################################################################################################################