|
12 | 12 |
|
13 | 13 | # Solution:
|
14 | 14 |
|
| 15 | + |
| 16 | +def print_numbers(num): |
| 17 | + while (num > 0): |
| 18 | + print(num) |
| 19 | + num -= 1 |
| 20 | + print('finished!') |
| 21 | + |
| 22 | + |
15 | 23 | ########################################################################################################################
|
16 | 24 |
|
17 |
| -# 58 - |
| 25 | +# 58 - Переворот строки |
18 | 26 |
|
19 | 27 | """
|
| 28 | +Задание |
20 | 29 |
|
| 30 | +Реализуйте функцию mysubstr, которая извлекает из строки подстроку указанной длины. Она принимает на вход два |
| 31 | +аргумента: строку и длину, и возвращает подстроку начиная с первого символа |
21 | 32 | """
|
22 | 33 |
|
23 | 34 | # Solution:
|
24 | 35 |
|
| 36 | + |
| 37 | +def mysubstr(string, num): |
| 38 | + return string[:num] |
| 39 | + |
| 40 | + |
25 | 41 | ########################################################################################################################
|
26 | 42 |
|
27 |
| -# 59 - |
| 43 | +# 59 - Пограничные случаи |
28 | 44 |
|
29 | 45 | """
|
| 46 | +Задание |
| 47 | +
|
| 48 | +Реализуйте функцию-предикат is_arguments_for_substr_correct, которая принимает три аргумента: |
| 49 | +
|
| 50 | + строку |
| 51 | + индекс, с которого начинать извлечение |
| 52 | + длину извлекаемой подстроки |
30 | 53 |
|
| 54 | +Функция возвращает False, если хотя бы одно из условий истинно: |
| 55 | +
|
| 56 | + Отрицательная длина извлекаемой подстроки |
| 57 | + Отрицательный заданный индекс |
| 58 | + Заданный индекс выходит за границу всей строки |
| 59 | + Длина подстроки в сумме с заданным индексом выходит за границу всей строки |
| 60 | +
|
| 61 | +В ином случае функция возвращает True. |
| 62 | +
|
| 63 | +Не забывайте, что индексы начинаются с 0, поэтому индекс последнего элемента — это «длина строки минус 1» |
31 | 64 | """
|
32 | 65 |
|
33 | 66 | # Solution:
|
34 | 67 |
|
| 68 | + |
| 69 | +def is_arguments_for_substr_correct(string, index, long): |
| 70 | + if long < 0: |
| 71 | + return False |
| 72 | + if index < 0: |
| 73 | + return False |
| 74 | + if index > (len(string) - 1): |
| 75 | + return False |
| 76 | + if (long + index) > (len(string) - 1): |
| 77 | + return False |
| 78 | + return True |
| 79 | + |
| 80 | + |
35 | 81 | ########################################################################################################################
|
36 | 82 |
|
37 |
| -# 60 - |
| 83 | +# 60 - Синтаксический сахар |
38 | 84 |
|
39 | 85 | """
|
| 86 | +Задание |
40 | 87 |
|
| 88 | +Реализуйте функцию count_chars, которая считает повторения указанного символа в строке. (В программировании говорят |
| 89 | +«количество вхождений символа в строке») |
| 90 | +
|
| 91 | +Функция принимает на вход два параметра: строку и символ. Функция возвращает число |
41 | 92 | """
|
42 | 93 |
|
43 | 94 | # Solution:
|
44 | 95 |
|
| 96 | + |
| 97 | +def count_chars(string, char): |
| 98 | + count = 0 |
| 99 | + for letter in string: |
| 100 | + if letter == char: |
| 101 | + count += 1 |
| 102 | + return count |
| 103 | + |
| 104 | + |
45 | 105 | ########################################################################################################################
|
46 | 106 |
|
47 |
| -# 61 - |
| 107 | +# 61 - Циклы и условия |
48 | 108 |
|
49 | 109 | """
|
| 110 | +Задание |
| 111 | +
|
| 112 | +Модифицируйте последний вариант функции shouter, добавив такие условия: |
| 113 | +
|
| 114 | + Если длина строки больше 0 и меньше 5, то вернуть оригинальную строку без повторений. |
| 115 | + Если длина строки ровно 5 символов, то вернуть строку, повторенную 10 раз. |
50 | 116 |
|
| 117 | +Условие «длина больше 5, то вернуть строку, повторенную 100 раз» должно сохраниться |
51 | 118 | """
|
52 | 119 |
|
53 | 120 | # Solution:
|
54 | 121 |
|
| 122 | + |
| 123 | +def shouter(string): |
| 124 | + length = len(string) |
| 125 | + if length > 0 and length < 5: |
| 126 | + return string |
| 127 | + if length == 5: |
| 128 | + return string * 10 |
| 129 | + result = '' |
| 130 | + if length > 5: |
| 131 | + counter = 0 |
| 132 | + while counter != 100: |
| 133 | + result += string |
| 134 | + counter += 1 |
| 135 | + return result |
| 136 | + |
| 137 | + |
55 | 138 | ########################################################################################################################
|
56 | 139 |
|
57 |
| -# 62 - |
| 140 | +# 62 - Циклы и условия 2 |
58 | 141 |
|
59 | 142 | """
|
| 143 | +Задание |
60 | 144 |
|
| 145 | +Как видите, функция get_even_numbers_up_to возвращает числа, слепив их вместе. Модифицируйте функцию так, чтобы числа |
| 146 | +в результате стояли через запятую |
61 | 147 | """
|
62 | 148 |
|
63 | 149 | # Solution:
|
64 | 150 |
|
| 151 | + |
| 152 | +def get_even_numbers_up_to(number): |
| 153 | + counter = 1 |
| 154 | + result = '' |
| 155 | + while counter <= number: |
| 156 | + if counter % 2 == 0: |
| 157 | + result = result + str(counter) + ',' |
| 158 | + counter += 1 |
| 159 | + return result |
| 160 | + |
| 161 | + |
65 | 162 | ########################################################################################################################
|
66 | 163 |
|
67 |
| -# 63 - |
| 164 | +# 63 - Возврат из циклов |
68 | 165 |
|
69 | 166 | """
|
| 167 | +Задание |
| 168 | +
|
| 169 | +Реализуйте функцию does_contain, которая проверяет с учётом регистра), содержит ли строка указанную букву (в этот |
| 170 | +раз не пользуйтесь оператором in!). Функция принимает два параметра: |
| 171 | +
|
| 172 | + Строка |
| 173 | + Буква для поиска |
70 | 174 |
|
71 | 175 | """
|
72 | 176 |
|
73 | 177 | # Solution:
|
74 | 178 |
|
| 179 | + |
| 180 | +def does_contain(string, char): |
| 181 | + does = False |
| 182 | + for item in string: |
| 183 | + if char == item: |
| 184 | + does = True |
| 185 | + return does |
| 186 | + |
| 187 | + |
75 | 188 | ########################################################################################################################
|
0 commit comments