Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit 0485dbe

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents bb833a3 + c6858a7 commit 0485dbe

File tree

2 files changed

+616
-0
lines changed

2 files changed

+616
-0
lines changed

lesson3.md

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,335 @@
1+
# Лекция 3: Списки, Строки как Коллекции, Срезы Строк и Списков, методы строк, Циклы `for` и `while`.
2+
3+
## 1. Списки (Lists)
4+
5+
Список - это упорядоченная коллекция элементов, которая может содержать объекты разных типов. Они очень полезны при работе с множеством данных.
6+
7+
### Создание списков
8+
9+
Создать список можно, заключив элементы в квадратные скобки `[]` и разделив их запятыми.
10+
11+
```python
12+
fruits = ['яблоко', 'банан', 'груша', 'апельсин']
13+
numbers = [1, 2, 3, 4, 5]
14+
mixed_list = [1, 'два', 3.0, True]
15+
```
16+
17+
### Доступ к элементам списка
18+
19+
Чтобы получить доступ к элементам списка, используйте индексацию, начиная с 0.
20+
21+
```python
22+
print(fruits[0]) # Вывод: 'яблоко'
23+
print(numbers[2]) # Вывод: 3
24+
```
25+
26+
### Изменение элементов списка
27+
28+
Списки являются изменяемыми, поэтому вы можете изменять их элементы.
29+
30+
```python
31+
fruits[1] = 'киви'
32+
print(fruits) # Вывод: ['яблоко', 'киви', 'груша', 'апельсин']
33+
```
34+
35+
### Добавление и удаление элементов
36+
37+
Чтобы добавить элемент в конец списка, используйте метод `append()`.
38+
39+
```python
40+
fruits.append('ананас')
41+
print(fruits) # Вывод: ['яблоко', 'киви', 'груша', 'апельсин', 'ананас']
42+
```
43+
44+
Чтобы удалить элемент по индексу, используйте `del`.
45+
46+
```python
47+
del fruits[2]
48+
print(fruits) # Вывод: ['яблоко', 'киви', 'апельсин', 'ананас']
49+
```
50+
51+
## 2. Строки как Коллекции (Strings as Collections)
52+
53+
Строки в Python также можно рассматривать как коллекции символов.
54+
55+
### Доступ к символам строки
56+
57+
Для доступа к символам строки используйте индексацию, так же как и для списков.
58+
59+
```python
60+
text = "Hello, World!"
61+
print(text[0]) # Вывод: 'H'
62+
```
63+
64+
### Срезы строк (String Slicing)
65+
66+
Срезы позволяют получать подстроки из строки. Синтаксис среза: `строка[начало:конец:шаг]`.
67+
68+
```python
69+
substring = text[0:5] # Получение подстроки "Hello"
70+
print(substring) # Вывод: 'Hello'
71+
72+
substring = text[7:] # Получение подстроки с 7-го символа до конца
73+
print(substring) # Вывод: 'World!'
74+
75+
substring = text[:5] # Получение подстроки с начала до 5-го символа
76+
print(substring) # Вывод: 'Hello'
77+
78+
substring = text[::2] # Получение каждого второго символа
79+
print(substring) # Вывод: 'Hlo ol!'
80+
```
81+
82+
## 3. Циклы `for` и `while`
83+
84+
Циклы позволяют выполнять повторяющиеся операции.
85+
86+
### Цикл `for`
87+
88+
Цикл `for` используется для итерации по коллекциям, таким как списки и строки.
89+
90+
```python
91+
fruits = ['яблоко', 'киви', 'груша', 'апельсин']
92+
93+
for fruit in fruits:
94+
print(fruit)
95+
```
96+
97+
### Цикл `while`
98+
99+
Цикл `while` выполняется до тех пор, пока условие истинно.
100+
101+
```python
102+
count = 0
103+
104+
while count < 5:
105+
print(count)
106+
count += 1
107+
```
108+
109+
### Ключевое слово `break`
110+
111+
`break` используется для выхода из цикла досрочно, даже если условие цикла остается истинным. Обычно `break` используется внутри условия, чтобы определить момент завершения цикла.
112+
113+
Пример с циклом `while`:
114+
115+
```python
116+
count = 0
117+
118+
while count < 5:
119+
if count == 3:
120+
break # Выход из цикла, если count равно 3
121+
print(count)
122+
count += 1
123+
```
124+
125+
Пример с циклом `for`:
126+
127+
```python
128+
fruits = ['яблоко', 'киви', 'груша', 'апельсин']
129+
130+
for fruit in fruits:
131+
if fruit == 'груша':
132+
break # Выход из цикла при нахождении 'груши'
133+
print(fruit)
134+
```
135+
136+
### Ключевое слово `continue`
137+
138+
`continue` используется для перехода к следующей итерации цикла, игнорируя оставшуюся часть текущей итерации. Обычно `continue` используется внутри условия для пропуска определенных действий.
139+
140+
Пример с циклом `while`:
141+
142+
```python
143+
count = 0
144+
145+
while count < 5:
146+
count += 1
147+
if count == 3:
148+
continue # Пропустить вывод числа 3
149+
print(count)
150+
```
151+
152+
Пример с циклом `for`:
153+
154+
```python
155+
fruits = ['яблоко', 'киви', 'груша', 'апельсин']
156+
157+
for fruit in fruits:
158+
if fruit == 'груша':
159+
continue # Пропустить вывод 'груши'
160+
print(fruit)
161+
```
162+
163+
Ключевые слова `break` и `continue` полезны при создании более сложной логики в циклах и позволяют управлять потоком выполнения программы в более гибком стиле.
164+
165+
Это основы работы с ключевыми словами `break` и `continue` в Python, списками, строками, срезами и циклами. Надеюсь, что эта лекция помогла вам лучше понять эти концепции и как их использовать в вашем коде. Удачи в изучении Python и разработке!
166+
167+
168+
### Бесконечные циклы
169+
170+
Иногда может потребоваться создать бесконечный цикл, который будет выполняться до тех пор, пока его не прервут. Для этого используется конструкция `while True`.
171+
172+
```python
173+
while True:
174+
# Этот цикл будет выполняться бесконечно
175+
user_input = input("Введите что-нибудь (для выхода наберите 'q'): ")
176+
if user_input == 'q':
177+
break # Выход из цикла при вводе 'q'
178+
```
179+
180+
Бесконечные циклы могут быть полезными в тех случаях, когда нужно создать программу, которая работает в фоновом режиме и ожидает какого-либо события, либо когда нужно регулярно выполнять какую-то задачу, например, мониторинг сенсоров или сетевых подключений.
181+
182+
Не забывайте, что бесконечные циклы должны иметь какой-то механизм для прерывания, иначе программа будет выполняться бесконечно и может привести к зависанию.
183+
184+
Практика:
185+
186+
1. Создайте список numbers с числами от 1 до 10. Используя цикл for, выведите каждое число из списка numbers, возведенное в квадрат. Используя цикл for, найдите сумму всех чисел в списке numbers.
187+
2. Создайте строку text с произвольным текстом. Используя цикл for, выведите каждый символ из строки text. Используя срезы, выведите первые 5 символов и последние 5 символов из строки text.
188+
3. Создайте список чисел от 1 до 20. Используя цикл for, выведите все числа из списка, которые делятся на 3 без остатка. Используя цикл while, найдите сумму всех чисел от 1 до 100. Создайте бесконечный цикл с использованием while True, который будет предлагать пользователю ввод числа и выводить квадрат этого числа. Добавьте условие для выхода из цикла при вводе значения "0" или "exit".
189+
4. Создайте список слов words, включая некоторые повторяющиеся слова. Используя цикл for, выведите все уникальные слова из списка.
190+
191+
192+
## Полезные методы строк
193+
194+
### Длина строки
195+
196+
Для определения длины строки используйте функцию `len()`.
197+
198+
```python
199+
text = "Привет, мир!"
200+
length = len(text) # Длина строки: 12
201+
```
202+
203+
### Конкатенация строк
204+
205+
Для объединения (конкатенации) строк используйте оператор `+`.
206+
207+
```python
208+
str1 = "Hello"
209+
str2 = "World"
210+
result = str1 + ", " + str2 # Результат: "Hello, World"
211+
```
212+
213+
### Умножение строк
214+
215+
Вы можете умножить строку на число, чтобы повторить ее несколько раз.
216+
217+
```python
218+
text = "Привет"
219+
result = text * 3 # Результат: "ПриветПриветПривет"
220+
```
221+
222+
## Методы строк
223+
224+
Python предоставляет множество методов для работы с строками. Ниже представлены некоторые из наиболее часто используемых методов.
225+
226+
### `str.upper()` и `str.lower()`
227+
228+
Метод `upper()` преобразует все символы строки в верхний регистр, а `lower()` - в нижний.
229+
230+
```python
231+
text = "Привет, мир!"
232+
uppercase = text.upper() # Результат: "ПРИВЕТ, МИР!"
233+
lowercase = text.lower() # Результат: "привет, мир!"
234+
```
235+
236+
### `str.strip()`
237+
238+
Метод `strip()` удаляет пробелы и символы перевода строки с начала и конца строки.
239+
240+
```python
241+
text = " Текст с лишними пробелами "
242+
stripped_text = text.strip() # Результат: "Текст с лишними пробелами"
243+
```
244+
245+
### `str.split()`
246+
247+
Метод `split()` разбивает строку на список подстрок, используя разделитель.
248+
249+
```python
250+
text = "Яблоки, Груши, Бананы"
251+
fruits = text.split(", ") # Результат: ['Яблоки', 'Груши', 'Бананы']
252+
```
253+
254+
### `str.replace()`
255+
256+
Метод `replace()` заменяет все вхождения подстроки на другую подстроку.
257+
258+
```python
259+
text = "Привет, мир!"
260+
new_text = text.replace("мир", "вселенная") # Результат: "Привет, вселенная!"
261+
```
262+
263+
### `str.find()` и `str.index()`
264+
265+
Методы `find()` и `index()` находят первое вхождение подстроки в строку и возвращают индекс этого вхождения. Разница между ними в том, что `find()` возвращает -1, если подстрока не найдена, а `index()` вызывает исключение.
266+
267+
```python
268+
text = "Это пример текста с примерами"
269+
index1 = text.find("пример") # Результат: 4
270+
index2 = text.index("пример") # Результат: 4
271+
index3 = text.find("нет") # Результат: -1
272+
# index4 = text.index("нет") # Вызовет ValueError
273+
```
274+
275+
### `str.count()`
276+
277+
Метод `count()` подсчитывает количество вхождений подстроки в строку.
278+
279+
```python
280+
text = "Это пример текста с примерами"
281+
count = text.count("пример") # Результат: 2
282+
```
283+
284+
### `str.startswith()` и `str.endswith()`
285+
286+
Методы `startswith()` и `endswith()` проверяют, начинается ли строка с указанной подстроки или заканчивается ей.
287+
288+
```python
289+
text = "Это пример текста"
290+
starts_with = text.startswith("Это") # Результат: True
291+
ends_with = text.endswith("текста") # Результат: True
292+
```
293+
294+
### `str.join()`
295+
296+
Метод `join()` объединяет список строк с помощью текущей строки в качестве разделителя.
297+
298+
```python
299+
fruits = ['Яблоки', 'Груши', 'Бананы']
300+
text = ', '.join(fruits) # Результат: "Яблоки, Груши, Бананы"
301+
```
302+
303+
## Форматирование строк
304+
305+
Python также предоставляет мощные инструменты для форматирования строк. Один из способов - это использование метода `str.format()`.
306+
307+
```python
308+
name = "Иван"
309+
age = 30
310+
text = "Привет, меня зовут {} и мне {} лет.".format(name, age)
311+
# Результат: "Привет, меня зовут Иван и мне 30 лет."
312+
```
313+
314+
### F-строки
315+
316+
Python 3.6 и выше поддерживают f-строки (f-strings), которые представляют собой удобный способ вставки переменных и выражений в строки.
317+
318+
```python
319+
name = "Иван"
320+
age = 30
321+
text = f"Привет, меня зовут {name} и мне {age} лет."
322+
# Результат: "
323+
324+
Привет, меня зовут Иван и мне 30 лет."
325+
```
326+
327+
F-строки начинаются с буквы `f` перед открывающей кавычкой, и в фигурных скобках `{}` можно вставлять переменные или выражения, которые будут вычислены и подставлены в строку.
328+
329+
Практика:
330+
331+
1. Подсчет гласных букв: Попросите пользователя ввести строку текста, а затем используйте методы строк для подсчета количества гласных букв (а, е, и, о, у) в этой строке.
332+
333+
2. Замена слов: Создайте строку, содержащую предложение, и попросите пользователя ввести слово. Затем замените все вхождения этого слова в предложении на слово "заменено". Выведите измененное предложение.
334+
335+
3. Создайте список с повторяющимися элементами. Используйте методы списков для удаления дубликатов и выведите измененный список.

0 commit comments

Comments
 (0)