Когда у программиста возникает необходимость повторить какое-то действие несколько раз, он пишет цикл.
В python cуществуют операторы цикла while и for.
В большинстве случаев операторы цикла взаимозаменяемы, но у каждого из них есть некоторые нюансы.
Простейший оператор цикла while выглядит так:
while условие: действие
или
while условие: блок действий в несколько строк
Суть работы цикла: Проверяется условие в цикле, если оно выполняется (т.е. True), тело цикла выполняется. Затем опять проверяется условие цикла, если true - выполняется тело, и так до тех пор, пока не перестанет выполняться условие цикла.
i = res = 0
while i < 11:
res += i
i += 1
print(res)
break оператора continue, который прекращает текущую итерацию и начинает следующую:
i = 10
while True:
i -= 1
if not i: continue
if i%2:
print(i)
if i < -10: breakТо же суммирование первых 10 элементов, что и с помощью цикла while, но при помощи for:
sum = 0
for i in range(1, 11):
sum += i
print(sum)Функция enumerate() используется для упрощения прохода по коллекциям в цикле, когда кроме самих элементов требуется их индекс:
a = [10, 20, 30, 40]
for id, item in enumerate(a):
a[id] = item + 5
print(a)
[15, 25, 35, 45]Для работы с файлами вам потребуются следующие функции:
- open
- write
- read
- close
Примеры:
import sys
filename = sys.argv[1]
# далее открываем файл на чтение (опция 'r')
f = open(filename, 'r') # в файле теперь file descriptor
for line in f: # для каждой строки в файле
print(line)
f.close() # закрытие файлаЗдесь надо обратить внимание на следующие строки:
import sys - включение в нашу программу библиотеки системных функций, с помощью которой мы можем работать с параметрами командной строки, к примеру.
filename = sys.argv[1], где sys.argv - функция системной библиотеки sys. Она считывает 1-й параметр из списка параметров командной строки.
Если мы осуществим вызов файла нашей программы prog.py в консоли, и передадим ей файл вот так:
C:\python3\python.exe prog.py testfile.txtто python считает нулевым параметром имя нашей программы (prog.py), первым = имя переданного файла (testfile.txt), вторым - следующий параметр, если он есть, и так далее.
Таким образом мы передали программе файл, прочитали его построчно и вывели. На данный момент пока по работе с файлами этого достаточно.
- Каждый пишет сумму списка при помощи for и while
- Написать программу, которая выводит сама себя
- Написать программу, которая выводит саму себя задом наперед
- Банкомат выдает сумму максимально возможными купюрами
- Банкомат выдает сумм мелкими, но не больше 10 штук каждой мелкой купюры