Skip to content

Latest commit

 

History

History
117 lines (81 loc) · 5.34 KB

File metadata and controls

117 lines (81 loc) · 5.34 KB

Урок 3. Циклы For и While, работа с файлами

Операторы цикла

Когда у программиста возникает необходимость повторить какое-то действие несколько раз, он пишет цикл.

В python cуществуют операторы цикла while и for.

В большинстве случаев операторы цикла взаимозаменяемы, но у каждого из них есть некоторые нюансы.

Цикл while

Простейший оператор цикла while выглядит так: while условие: действие или while условие: блок действий в несколько строк

Суть работы цикла: Проверяется условие в цикле, если оно выполняется (т.е. True), тело цикла выполняется. Затем опять проверяется условие цикла, если true - выполняется тело, и так до тех пор, пока не перестанет выполняться условие цикла.

i = res = 0
while i < 11:
    res += i
    i += 1
print(res)

Вечный (бесконечный) цикл

В программировании довольно часто используются вечные циклы. Просто есть ситуации, когда нет явного ограничения, и условие трудно проверить заранее. Для того, чтобы выйти из вечного цикла, и вообще из цикла, используется оператор break. Он работает внутри цикла и прекращает его выполнение. Далее проиллюстрирована работа оператора break оператора continue, который прекращает текущую итерацию и начинает следующую:

i = 10
while True:
    i -= 1
    if not i: continue
    if i%2:
        print(i)
    if i < -10: break

Оператор цикла for

То же суммирование первых 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 штук каждой мелкой купюры

Ссылки

Работа с файлами

Домашка

Следующий урок