ОПРАЦЮВАННЯ МАСИВІВ PYTHON
Завдання 1. Знаходження суми парних чисел
Умова: Програма має створити список із 5 чисел, які вводить користувач, а потім порахувати та вивести суму лише парних елементів.
Код із помилками:
numbers = []
for i in range(5):
val = input("Введіть число: ")
numbers.append(val)
suma = 0
for x in numbers:
if x / 2 == 0: # Тут помилка
suma = suma + x
print("Сума парних:", suma)
Завдання 2. Пошук елементів, більших за середнє
Умова: Програма має знайти середнє арифметичне списку та вивести всі числа, які більші за це середнє.
Код із помилками:
a = [10, 20, 30, 40, 50]
# Рахуємо середнє
serednie = sum(a) / len(a)
print("Середнє:", serednie)
# Шукаємо числа
for i in range(len(a)):
if i > serednie: # Тут помилка
print("Число більше за середнє:", a) # І тут помилка
Завдання 3. Заміна від'ємних чисел нулями
Умова: Програма отримує список чисел. Усі від’ємні числа потрібно замінити на 0 і вивести оновлений список.
Код із помилками:
items = [15, -3, 8, -22, 0, 7]
for x in items:
if x < 0:
x = 0 # Тут логічна помилка
print("Оновлений список:", items)
Для вчителя:
1. Що мають знайти учні:
2. Що мають знайти учні:
3. Що мають знайти учні:
Картка №1. Метеорологічна лабораторія
Сюжет: Ви працюєте аналітиком на метеостанції. У вас є дані про температуру повітря за останні 10 днів (список temps).
Завдання:
Картка №2. Бонусна система супермаркету
Сюжет: Магазин нараховує кешбек 5% на покупки, сума яких перевищує 500 грн. У списку purchases зафіксовано суми чеків покупця за місяць.
Завдання:
Картка №3. Відбір у десантну школу
Сюжет: Для навчання за спеціальністю "парашутист" допускаються курсанти, зріст яких не менше 170 см і не більше 190 см.
Завдання:
Картка №4. Контроль якості (Автоматизація)
Сюжет: На конвеєрі перевіряють вагу упаковок чаю. Стандарт — 100 г. Упаковка вважається бракованою, якщо її вага менша за 98 г.
Завдання:
Картка №5. Спортивні рекорди
Сюжет: Спортсмен здійснив 6 стрибків у довжину. Результати записані в метрах.
Завдання:
Шпаргалка: Робота зі списками (масивами) в Python
1. Створення списку:
numbers = [10, 20, 30] # Список із готовими даними
empty_list = [] # Порожній список
2. Основні функції для аналізу:
3. Додавання елементів:
4. Доступ до елементів (Індексація):
5. Перебір елементів (Цикли):
Варіант А: Якщо треба просто перевірити кожне число (без зміни списку):
for x in my_list:
if x > 100:
print(x)
Варіант Б: Якщо треба змінити значення в списку або знайти номер (індекс) елемента:
for i in range(len(my_list)):
if my_list[i] < 0:
my_list[i] = 0 # Замінюємо від'ємне число на нуль
6. Корисна порада:
Щоб вивести результат красиво (з двома знаками після коми), використовуйте:
print(f"Сума: {total:.2f}")
Порада для виконання завдань:
Якщо в задачі просять знайти середнє арифметичне, пам'ятайте формулу:
середнє = sum(список) / len(список)
РОЗВ’ЯЗКИ
1. # Дані про температуру (список)
temps = [2.5, -1.2, 0.0, -3.5, 1.8, -0.5, 4.2]
# 1. Обчислюємо середню температуру
avg_temp = sum(temps) / len(temps)
# 2. Рахуємо кількість днів з морозом
frosty_days = 0
for t in temps:
if t < 0:
frosty_days += 1
print(f"Середня температура за тиждень: {avg_temp:.1f}°C")
print(f"Кількість морозних днів: {frosty_days}")
2. prices = [45.0, 120.0, 300.5, 80.0, 150.0]
total_sum = 0
for i in range(len(prices)):
if prices[i] > 100:
# Нараховуємо знижку 10%
prices[i] = prices[i] * 0.9
total_sum += prices[i]
print(f"Список цін після знижок: {prices}")
print(f"Загальна сума до сплати: {total_sum:.2f} грн")
3. students_heights = [170, 182, 195, 210, 176, 165, 188]
team = []
for height in students_heights:
if 175 < height <= 200:
team.append(height)
print(f"Кількість обраних гравців: {len(team)}")
print(f"Зріст гравців команди: {team}")
4. humidity_data = [45, 48, 52, 60, 58, 55, 50, 42]
# Використання вбудованих функцій
max_h = max(humidity_data)
min_h = min(humidity_data)
# Або ручний пошук (алгоритмічний підхід)
current_max = humidity_data[0]
for value in humidity_data:
if value > current_max:
current_max = value
print(f"Максимальна вологість: {max_h}%")
print(f"Мінімальна вологість: {min_h}%")
print(f"Амплітуда коливань: {max_h - min_h}%")
5. weights = [500, 498, 507, 494, 501, 505, 490]
broken_count = 0
print("Браковані деталі знайдені на позиціях:")
for i in range(len(weights)):
if weights[i] < 495 or weights[i] > 505:
print(f"Деталь №{i+1} (вага: {weights[i]}г)")
broken_count += 1
print(f"Всього браку: {broken_count} шт.")
Методична порада:
Під час перевірки звертайте увагу на те, як учень інтерпретує результат. Якщо програма видала 0, учень має пояснити, що це означає "заміну браку", а не просто "число нуль".
Для швидкої перевірки коду ви можете скористатися онлайн-редактором Online Python Tutor, який візуалізує крок за кроком, як змінюється масив у пам'яті.
Поради для вчителя:
if 175 > height і запитайте, чому команда виявилася порожньою.