-
1. Введение в Python
2. Условия и операторы сравнения
3. Циклы и индексы
4. Списки
5. Файлы
6. Запись файлов
7. Введение в функции
8. Продолжение функций, кортежи
9. Подготовка к контрольной работе №1
11. Импорт и функции
12. Словари 1 и множества
13. Словари 2
14. Словари 3
15. Регулярные выражения 1
16. Регулярные выражения 2
17. Регулярные выражения 3
20. Работа с файлами и папками
21. Файловое дерево и форматирование строк
Циклы и индексы
Однажды ты спросишь меня, что для меня на первом месте: ты или программирование?
Я отвечу тебе, что программирование.
И ты уйдёшь, так и не узнав, что ты для меня на нулевом месте.
Содержание
- Оператор
[] - Цикл
for - Функция
range() - Функция
len() - Цикл
while - Прерывание цикла. Операторы
breakиcontinue - Задачи
- Домашнее задание
Оператор []
С помощью квадратных скобок вы можете выбрать любой символ из строки:
>>> hello = 'hello'
>>> print(hello[0])
h
>>> print(hello[1])
e
>>> print(hello[2])
l
>>> print(hello[3])
l
>>> print(hello[4])
o
Обратите внимание, что любой элемент строки — это тоже маленькая строка, состоящая из одного символа
>>> hello = 'hello'
>>> h = hello[0]
>>> print(type(h))
<class 'str'>
>>> if hello[0] == h:
... print('The first symbol of', hello, 'is', h)
...
'The first symbol of', 'hello', 'is', 'h'
>>> if hello[0] == hello[0][0][0][0][0][0]:
... print('Что тут произошло?')
...
Цикл for
Для выполнения ряда однотипных действий используют циклы. Самый простой — это цикл for:
>>> for letter in 'hello':
... print(letter)
Обратите внимание на отступы, они должны быть в блоке for, как и в блоке if.
Функция range()
С помощью range() можно перебрать целые числа в цикле for:
>>> for number in range(5): # числа от нуля до 5 не включительно
... print(number)
... print('Последняя строка итерации цикла for')
...
0
Последняя строка итерации цикла for
1
Последняя строка итерации цикла for
2
Последняя строка итерации цикла for
3
Последняя строка итерации цикла for
4
Последняя строка итерации цикла for
Если подставить в цикл range(x, y), то будут выданы числа от x до y-1:
>>> for number in range(4, 8):
... print(number)
4
5
6
7
Можно указать шаг перебора в качестве третьего аргумента, например range(0, 6, 2) выдаст числа «0», «2», «4». То есть range(x, y, step) выдаёт все целые числа начиная с x с шагом step, но не включая y.
Точно так же можно выдавать числа от большего к меньшему:
>>> for number in range(5, -1, -1):
... print(number)
5
4
3
2
1
0
Функция len()
С помощью функции len(s) можно найти длину строки. Таким образом можно перебрать все индексы строки:
>>> hello = 'hello'
>>> print(len(hello))
5
>>>
>>> for i in range(len(hello)): # i - общепринятое обозначение для индекса
... print(i)
... print(hello[i])
...
0
h
1
e
2
l
3
l
4
o
Более красивый способ получить одновременно и индекс и значение — это
enumerate()
Цикл while
Цикл while позволяет выполнять однотипные действия, пока выполняется условие:
>>> i = 9
>>> while i >= 5:
... print(i)
... i -= 1 # это то же самое, что i = i-1
...
9
8
7
6
5
>>> print('Finally, i =', i)
Finnaly, i = 4
Прерывание цикла. Операторы break и continue
Выполнение цикла можно остановить по команде break:
>>> for i in range(3, 30, 3): # от 3 до 30 с шагом 3
... print(i)
... if i > 11:
... print('i превысило 11')
... break
...
3
6
9
12
i превысило 11
Или можно досрочно перейти к следующей итерации:
>>> for i in range(3, 30, 3):
... print(i)
... if i == 12:
... print('Сейчас i равно 12')
... continue
... else:
... print('А теперь i =', i)
...
3
А теперь i = 3
6
А теперь i = 6
9
А теперь i = 9
12
Сейчас i равно 12
15
А теперь i = 15
18
А теперь i = 18
21
А теперь i = 21
24
А теперь i = 24
27
А теперь i = 27
Те же команды можно применять и в цикле while, например можно сделать «бесконечный» цикл:
>>> while True: # выполняется всегда
... answer = input('Сколько будет 5 x 6? ')
... if answer == 36:
... print('И это правильный ответ!')
... break # выходим из цикла
... else:
... print('Попробуем ещё раз')
...
Сколько будет 5 x 6?
Если ваша программа «зависла», то нажмите
ctrl+cв оболочке, после чего программа остановится с ошибкойKeyboardInterrupt.

Задача: Шифр Цезаря
Сделать шифровальную программу, которая берёт слово и шифрует каждую букву следующей по алфавиту. Для этого нужно сделать два набора букв и оперировать их индексами.
Домашнее задание
Вам нужно написать программу, которая производит одно из перечисленных ниже действий, в зависимости от номера варианта. Во всех случаях, где требуется вывести буквы, они выводятся по-одной на строку.
-
Спрашивает у пользователя число
n, а затем n раз спрашивает пользователя слово. Если вместо слова введена пустая строка'', то выводится сообщение «Вы ввели пустую строку». -
Спрашивает у пользователя слово (в кириллице). Если вторая буква слова — это «к», «и» или «л», то выводит все чётные буквы этого слова, иначе выводит все нечётные буквы.
-
Спрашивает у пользователя слово (в кириллице). Если первая буква слова — это «а», «э», «е» или «я», то выводит слово побуквенно в прямом порядке, иначе выводит буквы этого слова задом наперёд.
-
Спрашивает у пользователя число и выводит на экран все натуральные чётные числа, которые являются степенью двойки (1, 2, 4, 8, …) и не превышают введённого числа.
-
Спрашивает у пользователя число и выводит на экран таблицу умножения на это число (т. е., например, если введено число 5, то выводятся строчки вида
1 * 5 = 5;2 * 5 = 10, и так далее — всего десять строчек). -
Спрашивает у пользователя слово (в кириллице). Если длина слова меньше 6, то выводит буквы этого слова, иначе выводит все его буквы до середины (не включая среднюю букву, если число букв нечётно).
-
Спрашивает у пользователя слово (в кириллице). Выводит сначала все чётные буквы этого слова, а затем все нечётные буквы. В обоих случаях пропускает буквы «п», «и» и «о».