-
Notifications
You must be signed in to change notification settings - Fork 0
/
4-Functions.py
120 lines (102 loc) · 3.79 KB
/
4-Functions.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
########################################################################################################################
#
# № 2 - Позиционные аргументы
#
# src/solution.py
#
# Вам нужно реализовать функцию greet, которая должна принимать несколько имён (как минимум одно!) и возвращать
# строку приветствия (см. примеры ниже)
#
# Примеры:
#
# >>> greet('Bob')
# 'Hello, Bob!'
# >>> greet('Moe', 'Mary')
# 'Hello, Moe and Mary!'
# >>> greet(*'ABC')
# 'Hello, A and B and C!'
#
# Подсказка
#
# При решении вам может пригодиться метод join у объекта строки. Работает он так:
#
# >>> ','.join(['A', 'B', 'C'])
# 'A,B,C'
# >>> ','.join(['A'])
# 'A'
# >>> ''.join(['Hello', 'World'])
# 'HelloWorld'
#
# SOLUTION:
# BEGIN
def greet(who, *args):
names = ' and '.join((who,) + args)
return 'Hello, {}!'.format(names)
# END
#
########################################################################################################################
#
# № 3 - Именованные аргументы
#
# src / solution.py
#
# В этом упражнении вам нужно будет, используя функцию rgb, реализовать функцию get_colors, которая должна вернуть
# словарь цветов(о цветовой модели RGB вы можете почитать тут).В словаре должны присутствовать ключи 'red', 'green',\
# 'blue'. Каждому ключу должен соответствовать результат вызова функции rgb со значением 255 для соответствующего ключу
# аргумента. Для построения каждого цвета используйте только один аргумент!
#
# Пример:
#
# >> > colors = get_colors()
# >> > set(colors.keys()) == {'red', 'green', 'blue'}
# True
# >> > colors['red']
# 'rgb(255, 0, 0)'
# >> > colors['blue']
# 'rgb(0, 0, 255)'
#
# SOLUTION:
def rgb(red=0, green=0, blue=0):
return 'rgb({}, {}, {})'.format(red, green, blue)
# BEGIN (write your solution here)
def get_colors():
return {
'red': rgb(red=255),
'green': rgb(green=255),
'blue': rgb(blue=255),
}
# END
#
########################################################################################################################
#
# № 4 - Больше об именованных аргументах
#
# src/solution.py
#
# Цель данного упражнения — функция updated. Эта функция должна принимать словарь в качестве единственного позиционного
# аргумента (обязательного) и произвольное кол-во именованных аргументов. Возвращать же функция должна новую версию
# словаря, в котором ключи, соответствующие именованным аргументам, должны иметь сопутствующие значения (см.примеры)
#
# Примеры:
#
# >>> d = {'a': 1, 'b': False}
# >>> updated(d, a=2, b=True, c=None)
# {'a': 2, 'b': True, 'c': None}
# >>> d
# {'a': 1, 'b': False}
# >>> updated(d) == d
# True
# >>> updated(d) is d
# False
#
# SOLUTION:
# BEGIN (write your solution here)
def updated(d, **kwargs):
keyset = set(d.keys())
update = d.copy()
for index in kwargs.keys():
update[index] = kwargs[index]
return update
# END
#
########################################################################################################################