Коли в програміста виникає необхідність повторити якусь дію кілька разів, він пише цикл.
У python є оператори циклу while та for.
У більшості випадків оператори циклу взаємозамінні, але кожен з них має деякі нюанси.
Найпростіший оператор циклу 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Те саме підсумовування перших 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 штук кожної дрібної купюри
- Завершити практичні завдання з заняття.
- Написати fizzbuzz для 20 комплектів по три числа, які записані в файл. Читайте із файлу перший рядок з трьома числами, беріть із нього числа, рахуйте для них fizzbuzz, виводите, продовжуйте з наступним рядком і так до кінця файла.
- Переробити другу задачу так, щоб результат писався в інший файл.