Skip to content

Commit 281240c

Browse files
committed
1 parent 7e8b67d commit 281240c

32 files changed

Lines changed: 30944 additions & 0 deletions

python/makarov/cond_and_cycles.ipynb

Lines changed: 1086 additions & 0 deletions
Large diffs are not rendered by default.

python/makarov/cond_and_cycles.py

Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
"""Условия и циклы."""
2+
3+
# ### Условия
4+
5+
# Множественные условия (multi-way decisions)
6+
7+
# +
8+
import numpy as np
9+
10+
number_value = 25
11+
12+
if number_value < 10:
13+
print("Small")
14+
elif number_value < 100:
15+
print("Medium")
16+
else:
17+
print("Large")
18+
19+
# +
20+
user_input = input("Введите число: ")
21+
22+
number_value = int(user_input)
23+
if number_value < 10:
24+
print("Small")
25+
elif number_value < 100:
26+
print("Medium")
27+
else:
28+
print("Large")
29+
# -
30+
31+
# Вложенные условия (nested decisions)
32+
33+
# +
34+
user_input = input("Введите число: ")
35+
36+
if len(user_input) != 0:
37+
number_value = int(user_input)
38+
39+
if number_value < 10:
40+
print("Small")
41+
elif number_value < 100:
42+
print("Medium")
43+
else:
44+
print("Large")
45+
else:
46+
print("Ввод пустой")
47+
# -
48+
49+
# Несколько условий в одном выражении с операторами and или or
50+
51+
# +
52+
number_value = 42
53+
54+
if 10 < number_value < 100:
55+
print("Medium")
56+
else:
57+
print("Small or Large")
58+
59+
# +
60+
number_value = 2
61+
62+
if number_value < 10 or number_value > 100:
63+
print("Small or Large")
64+
else:
65+
print("Medium")
66+
# -
67+
68+
# Проверка вхождения элемента в объект с in/not in
69+
70+
# +
71+
sentence = "To be, or not to be, that is the question"
72+
word = "question"
73+
74+
if word in sentence:
75+
print("Слово найдено")
76+
77+
# +
78+
number_list = [2, 3, 4, 6, 7]
79+
number = 5
80+
81+
if number not in number_list:
82+
print("Такого числа в списке нет")
83+
# -
84+
85+
fruit_counts = {"apple": 3, "tomato": 6, "carrot": 2}
86+
87+
if "apple" in fruit_counts:
88+
print("Нашлись")
89+
90+
if 6 in fruit_counts.values():
91+
print("Есть")
92+
93+
# ### Циклы в Python
94+
95+
# Основные операции
96+
97+
# +
98+
number_list = [1, 2, 3]
99+
100+
for number in number_list:
101+
print(number)
102+
# -
103+
104+
products = {"apple": [3, "kg"], "tomato": [6, "pcs"], "carrot": [2, "kg"]}
105+
106+
for key, value in products.items():
107+
print(key, value)
108+
109+
for product_info in products.values():
110+
print(product_info[0])
111+
112+
# +
113+
number_array = np.array([1, 2, 3])
114+
115+
for number in number_array:
116+
print(number)
117+
# -
118+
119+
# Функция range()
120+
121+
for i in range(5):
122+
print(i)
123+
124+
for i in range(1, 6):
125+
print(i)
126+
127+
for i in range(0, 6, 2):
128+
print(i)
129+
130+
# +
131+
months = [
132+
"Январь",
133+
"Февраль",
134+
"Март",
135+
"Апрель",
136+
"Май",
137+
"Июнь",
138+
"Июль",
139+
"Август",
140+
"Сентябрь",
141+
"Октябрь",
142+
"Ноябрь",
143+
"Декабрь",
144+
]
145+
146+
sales = [47, 75, 79, 94, 123, 209, 233, 214, 197, 130, 87, 55]
147+
148+
for month, sale in zip(months, sales):
149+
print(month, sale)
150+
# -
151+
152+
# ### Последовательность в обратном порядке#
153+
154+
# Функция reversed()
155+
156+
# +
157+
my_list = [0, 1, 2, 3, 4]
158+
159+
for i in reversed(my_list):
160+
print(i)
161+
# -
162+
163+
for i in reversed(range(5)):
164+
print(i)
165+
166+
# Указать -1 в качестве параметров шага
167+
168+
for i in range(4, 0, -1):
169+
print(i)
170+
171+
for i in range(4, -1, -1):
172+
print(i)
173+
174+
# Функция sorted()
175+
176+
# +
177+
range_value = range(5)
178+
179+
sorted_values = sorted(range_value, reverse=True)
180+
for i in sorted_values:
181+
print(i)
182+
# -
183+
184+
# Функция enumerate
185+
186+
# +
187+
days = [
188+
"понедельник",
189+
"вторник",
190+
"среда",
191+
"четверг",
192+
"пятница",
193+
"суббота",
194+
"воскресенье",
195+
]
196+
197+
for i, day in enumerate(days):
198+
print(i, day)
199+
# -
200+
201+
for i, day in enumerate(days, 1):
202+
print(i, day)
203+
204+
# Цикл while
205+
206+
# +
207+
i = 0
208+
209+
while i < 3:
210+
print("Текущее значение счётчика: " + str(i))
211+
i += 1
212+
print("Новое значение: " + str(i))
213+
214+
# +
215+
i = 0
216+
217+
while i < 3:
218+
print(i)
219+
i += 1
220+
# -
221+
222+
# ### Break, continue
223+
224+
# Оператор break
225+
226+
# +
227+
clients = {
228+
1: {"name": "Анна", "age": 24, "sex": "male", "revenue": 12000},
229+
2: {"name": "Илья", "age": 18, "sex": "female", "revenue": 8000},
230+
}
231+
232+
for client_id, info in clients.items():
233+
print(client_id, info)
234+
break
235+
# -
236+
237+
number_value = 6
238+
while number_value != 0:
239+
print(number_value)
240+
number_value -= 1
241+
if number_value == 3:
242+
break
243+
244+
# Оператор continue
245+
246+
for i in range(1, 11):
247+
if i % 2 == 0:
248+
print(i)
249+
250+
# Форматирование строк через f-строки и метод .format()
251+
252+
# +
253+
days = [
254+
"понедельник",
255+
"вторник",
256+
"среда",
257+
"четверг",
258+
"пятница",
259+
"суббота",
260+
"воскресенье",
261+
]
262+
263+
Monday = days[0]
264+
Monday
265+
# -
266+
267+
print(f"{Monday} - день тяжелый")
268+
269+
# ### Ответы на вопросы
270+
271+
# Можно ли использовать цикл while с функцией range()?
272+
273+
# да но не оптимально
274+
i = 1
275+
while i in range(1, 11):
276+
print("Значение счётчика ", i)
277+
i += 1
278+
279+
# более оптимальный вид
280+
for i in range(1, 11):
281+
print("Значение счётчика ", i)
282+
283+
# Можно ли обойтись без оператора continue в приведенном на занятии примере?
284+
285+
# да
286+
for i in range(2, 11, 2):
287+
print(i)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
country,capital,population,area,sea
2+
China,Beijing,1400,9.6,1
3+
Vietnam,Hanoi,97,0.3,1
4+
United Kingdom,London,67,0.2,1
5+
Russia,Moscow,144,17.1,1
6+
Argentina,Buenos Aires,45,2.8,1
7+
Bolivia,Sucre,12,1.1,0
8+
South Africa,Pretoria,59,1.2,1
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Date,Temp
2+
2002-01-01,47.1
3+
2002-02,50.5
4+
2002-03-1,54.9
5+
2002-04,66.1
6+
2002-05-01,72.7
7+
2002-06,83.2
8+
2002-07,88.8
9+
2002-08-1,87.8
10+
2002-09-01,80.2
11+
2002-10-01,64.1
12+
11-2002,53.9
13+
2002-12-01,44.1

0 commit comments

Comments
 (0)