Команди повторення. Оператори циклу.

Тест на функцію range()  Тест

 Цикли в Python

Цикли - це алгоритми, в яких є команди, які повторюються.

Команди можуть повторюватися для різних значень змінних.

Команди, що повторюються, є тілом циклу. Існують цикли з параметром та цикли з умовою.

Цикли з параметром

Цикли з заздалегідь відомою кількістю повторень команд циклу називають циклами з параметрами.

В таких циклах є лічильник циклів від a до n. Тобто від початкового значення до кінцевого значення. Блок команд в тілі циклу може містити одну або декілька команд.

Цикли з параметрами в Python мають вигляд:

<Створення об'єкта>

for <змінна> in <об'єкт>:

<блок команд тіла циклу>

Об'єктом може бути список, рядок, кортеж, діапазон, словник.

Оператор for перебирає всі значення об'єкта, і присвоює їх змінній. Спочатку береться початкове значення, потім наступне значення і т.д. до кінцевого значення.

В циклі використовується функція range(), яка генерує послідовність чисел у заданому діапазоні.

Структура функції range():

range(початок, кінець, крок)

 range(n) – шкала чисел від 0 до n-1;
 range(k, n) – шкала чисел від k до n-1;
 range(k, n, m) – шкала чисел від k до n-1 з кроком m (причому m може бути від'ємним.) 

Обов'язковим є параметр кінець. Якщо починаємо з нуля, то початок можна не вказувати, якщо числа ідуть послідовно, одне за одним з різницею в 1, то крок можна не вказувати. Якщо числа треба вказати в оберненому порядку, то крок буде від'ємним.

Наприклад:

for i in range(10, 21, 2):

В цьому циклі вказано діапазон чисел від 10 до 20 з кроком 2:

10, 12, 14, 16, 18, 20.

i - це лічильник циклу.

in це ключове слово, що наказує python почергово надавати змінній значення в діапазоні від початку до кінця мінус один з вказаним кроком.

Наприклад: Надрукувати числа від 0 до 10.

for i in range(11):

print(i)

Надрукувати числа від 25 до 30.

for i in range(25, 31):

print(i)

Надрукувати числа від 6 до 1.

for i in range(6, 0, -1):

print(i)

Діапазон значень можна також вказувати у вигляді списку:

m = [1, 2, 3, 4]

for i in m:

print(i)

У тіло циклу можуть бути вкладені умовні оператори розгалуження або інші оператори циклу.

Завдання для самостійного виконання:

1. Надрукувати числа від 0 до 5 з кроком 2.

2. Надрукувати числа від 10 до 30 з кроком 3.

3. Надрукувати числа від 20 до 5 з кроком 4.

4. Надрукувати числа від 0 до 35 з кроком 5.

5. Надрукувати числа від 6 до 1.

6. Надрукувати числа від 30 до 37.

Оператор continue
Оператор continue починає наступний прохід циклу, минаючи частину тіла  циклу (for або while)


Виведемо кожну букву двічі, крім 'о'.
# Приклад 1
for in 'hello world':
    if i == 'o':
        continue
    print (i * 2, end = '')

Результат:
hheellll wwrrlldd

Виведемо усі парні числа від 6 до 30, окрім чисел у діапазоні від 14 до 22

# Приклад 2
for in range(6, 31, 2):   
    if i>12 and i<26:     # якщо число 12<i<26 
        continue          # перехід на нову ітерацію циклу  

    print(i, end=" ")

Результат:
6 8 10 12 26 28 30

Оператор break
Оператор break достроково перериває цикл. Здійснює вихід із циклу навіть у тому випадку, коли всі ітерації не виконано.

# Приклад 3
for in 'hello world':
    if i == 'o':
        break
    print(i*2, end = '')

Результат:
hheellll

Обчислюємо суму цілих чисел доти, поки не буде введено q.

# Приклад 4 
s=0                       # початкова сума
while True:               # нескінченний цикл
    a=input("Уведи число: ") 
    if a=="q":            # якщо введено символ q 
        break             # переривання нескінченного циклу
    a=int(a)              # перетворення рядка в ціле число
    s=s+a                 # обчислення суми чисел
print("сума чисел s=", s)
input()


Результат:
Уведи число: 1
Уведи число: 2
Уведи число: 3
Уведи число: q

сума чисел s= 6

Запитання
1. Для чого призначений цикл for ?
2. З якою функцією використовують цикл for ?
3. Для чого використовують оператори continue i break ?
4. Що буде надруковано після виконання фрагмента програми

# a)
for in range(10):
    if i%2 == 0:
        print(i, end = " ")

# б)
for in range(4):
    print(i, end=" ")
print(i*2)




Завдання з підручника Руденко Інформатика 8 клас, 2021р. для поглибленого вивчення с.237.

Завдання 1. Розробіть код таблиці множення на 7.
# завдання 1 s = 1 a = 7 for i in range(1,10,1): s = a*i print(s)
Завдання 2. Розробіть код виведення окремо кожного символу слова "оператор".
# завдання 2 c = 'оператор' for x in c: print('Буква ', x)

Завдання 3. Розробіть код обчислення значення виразу a+2a+4a+6a+8a+10a+12a. Значення а вводиться з клавіатури.
# завдання 3 a = int(input('Введіть значення а')) d = 0 for i in range(2,13,2): d = d + i*a print(d+a)

Завдання 4. Початкове значення спадної геометричної прогресії дорівнює 12, а її знаменник - 0,5. Розробіть код обчислення суми членів прогресії, значення яких більше за 0,5.
# завдання 4
b1 = 12 q = 0.5 n = int(input('введіть кількість членів геометричної прогресії')) s = 0 lst = [] for i in range(n): lst1 = lst.insert(i+1, b1*(q**i)) print(lst) lst2 = [0.5] for i in range(n): if lst[i] > lst2[0]: s = s + lst[i] print(s)

Завдання 5. Розробіть код обчислення значення виразу: 1 + 1/2 + 1/3 + 1/4 +1/5 + .... +1/n. Значення n вводиться з клавіатури.

# завдання 5 
n = int(input('Вкажіть кількість чисел')) s1 = 0 for i in range(n+1): s1 = s1+1/n print(s1)

Цикл з передумовою while
Цикл з параметром зручно використовувати, коли відома кількість повторень. в інших випадках використовують цикли з умовою. Цикл while буле виконуватись стільки разів, поки не виконається умова.
Структура циклу:
While умова:
блок команд
Умова - це логічний вираз, якщо умова виконується, то блок команд виконується. Якщо не виконується, то цикл закінчується і виконується наступна команда після тіла циклу.
Інша структура циклу:

<Початкове значення>
while <перевірка початкового значення>
блок команд
<зміна початкового значення>

Оператор break перериває виконання циклу, якщо виконується деяка умова:
if умова: break
Ця умова прописується всередині циклу:

while True:
блок команд тіла циклу
if умова: break

Приклад циклу:
x = 5
while x<10:
x = x +1
print(x)
Результат: 6, 7, 8, 9, 10.
Якщо початкове значення в циклі не змінювати, то цикл буде нескінченним.
Тому важливо: задавати перед початком циклу початкове значення, та змінювати його всередині циклу. Тоді цикл буде робочим.


Коментарі