Skip to content

Latest commit

 

History

History
123 lines (84 loc) · 5.74 KB

File metadata and controls

123 lines (84 loc) · 5.74 KB

Урок 4. Цикли For та While, робота з файлами

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

Коли в програміста виникає необхідність повторити якусь дію кілька разів, він пише цикл. У python є оператори циклу 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. Вона зчитує перший параметр зі списку параметрів командного рядка.

Якщо здійснимо виклик файлу нашої програми prog.py в консолі, і передамо їй файл ось так:

C:\python3\python.exe prog.py testfile.txt

...то python вважає за нульовий параметр ім'я нашої програми (prog.py), першим = ім'я переданого файлу (testfile.txt), другим - наступний параметр, якщо він є, і так далі. Таким чином ми передали програмі файл, прочитали його по рядках та вивели. На цей час поки що по роботі з файлами цього достатньо.

Практика

  • Кожен пише суму списку за допомогою for та while
  • Написати програму, яка виводить сама себе
  • Написати програму, яка виводить саму себе задом наперед
  • Банкомат видає суму максимально можливими купюрами
  • Банкомат видає суму дрібними, але не більше 10 штук кожної дрібної купюри

Корисні посилання

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

Домашнє завдання

  1. Завершити практичні завдання з заняття.
  2. Написати fizzbuzz для 20 комплектів по три числа, які записані в файл. Читайте із файлу перший рядок з трьома числами, беріть із нього числа, рахуйте для них fizzbuzz, виводите, продовжуйте з наступним рядком і так до кінця файла.
  3. Переробити другу задачу так, щоб результат писався в інший файл.