Skip to content

Commit 7acf655

Browse files
committed
8-9, logic, loops
1 parent 82fbaf9 commit 7acf655

File tree

1 file changed

+119
-6
lines changed

1 file changed

+119
-6
lines changed

9_loops.py

Lines changed: 119 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,64 +12,177 @@
1212

1313
# Solution:
1414

15+
16+
def print_numbers(num):
17+
while (num > 0):
18+
print(num)
19+
num -= 1
20+
print('finished!')
21+
22+
1523
########################################################################################################################
1624

17-
# 58 -
25+
# 58 - Переворот строки
1826

1927
"""
28+
Задание
2029
30+
Реализуйте функцию mysubstr, которая извлекает из строки подстроку указанной длины. Она принимает на вход два
31+
аргумента: строку и длину, и возвращает подстроку начиная с первого символа
2132
"""
2233

2334
# Solution:
2435

36+
37+
def mysubstr(string, num):
38+
return string[:num]
39+
40+
2541
########################################################################################################################
2642

27-
# 59 -
43+
# 59 - Пограничные случаи
2844

2945
"""
46+
Задание
47+
48+
Реализуйте функцию-предикат is_arguments_for_substr_correct, которая принимает три аргумента:
49+
50+
строку
51+
индекс, с которого начинать извлечение
52+
длину извлекаемой подстроки
3053
54+
Функция возвращает False, если хотя бы одно из условий истинно:
55+
56+
Отрицательная длина извлекаемой подстроки
57+
Отрицательный заданный индекс
58+
Заданный индекс выходит за границу всей строки
59+
Длина подстроки в сумме с заданным индексом выходит за границу всей строки
60+
61+
В ином случае функция возвращает True.
62+
63+
Не забывайте, что индексы начинаются с 0, поэтому индекс последнего элемента — это «длина строки минус 1»
3164
"""
3265

3366
# Solution:
3467

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+
3581
########################################################################################################################
3682

37-
# 60 -
83+
# 60 - Синтаксический сахар
3884

3985
"""
86+
Задание
4087
88+
Реализуйте функцию count_chars, которая считает повторения указанного символа в строке. (В программировании говорят
89+
«количество вхождений символа в строке»)
90+
91+
Функция принимает на вход два параметра: строку и символ. Функция возвращает число
4192
"""
4293

4394
# Solution:
4495

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+
45105
########################################################################################################################
46106

47-
# 61 -
107+
# 61 - Циклы и условия
48108

49109
"""
110+
Задание
111+
112+
Модифицируйте последний вариант функции shouter, добавив такие условия:
113+
114+
Если длина строки больше 0 и меньше 5, то вернуть оригинальную строку без повторений.
115+
Если длина строки ровно 5 символов, то вернуть строку, повторенную 10 раз.
50116
117+
Условие «длина больше 5, то вернуть строку, повторенную 100 раз» должно сохраниться
51118
"""
52119

53120
# Solution:
54121

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+
55138
########################################################################################################################
56139

57-
# 62 -
140+
# 62 - Циклы и условия 2
58141

59142
"""
143+
Задание
60144
145+
Как видите, функция get_even_numbers_up_to возвращает числа, слепив их вместе. Модифицируйте функцию так, чтобы числа
146+
в результате стояли через запятую
61147
"""
62148

63149
# Solution:
64150

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+
65162
########################################################################################################################
66163

67-
# 63 -
164+
# 63 - Возврат из циклов
68165

69166
"""
167+
Задание
168+
169+
Реализуйте функцию does_contain, которая проверяет с учётом регистра), содержит ли строка указанную букву (в этот
170+
раз не пользуйтесь оператором in!). Функция принимает два параметра:
171+
172+
Строка
173+
Буква для поиска
70174
71175
"""
72176

73177
# Solution:
74178

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+
75188
########################################################################################################################

0 commit comments

Comments
 (0)