Зчитування даних

Зчитування даних від користувача є однією з найважливіших навичок у програмуванні. Це дозволяє створювати інтерактивні програми, які можуть отримувати інформацію від користувача та обробляти її.

Чому це важливо?

  • Інтерактивність: Програми можуть взаємодіяти з користувачем
  • Гнучкість: Одна програма може працювати з різними даними
  • Практичність: Більшість реальних програм потребують введення даних

Базові поняття

Перед тим, як почати, вам потрібно знати:

  • input() - основна функція для зчитування даних у Python
  • Типи даних - рядки (str), цілі числа (int), дробові числа (float)
  • Методи рядків - .split() для розділення рядка на частини
  • Функція map() - для застосування операції до кожного елемента

Зчитати рядок

Зчитує будь-який введений користувачем рядок.

Базовий приклад

user_input = input() # Вхідні дані: Програмування це цікаво!

З підказкою для користувача

name = input("Введіть ваше ім'я: ") print(f"Привіт, {name}!") # Вхідні дані: Олександр # Вивід: Привіт, Олександр!

Практичний приклад - Вітання

city = input("З якого ви міста? ") print(f"Чудово! {city} - прекрасне місто!") # Вхідні дані: Київ # Вивід: Чудово! Київ - прекрасне місто!

Зчитати та перетворити в число

Зчитує введене користувачем число та перетворює його в ціле число.

Ціле число (int)

age = int(input()) # Вхідні дані: 27

Ціле число з підказкою

year = int(input("Введіть рік народження: ")) current_year = 2025 age = current_year - year print(f"Вам приблизно {age} років") # Вхідні дані: 2000 # Вивід: Вам приблизно 25 років

Дробове число (float)

price = float(input("Введіть ціну товару: ")) discount = 0.1 # 10% знижка final_price = price * (1 - discount) print(f"Ціна зі знижкою: {final_price:.2f} грн") # Вхідні дані: 100.50 # Вивід: Ціна зі знижкою: 90.45 грн

Математичні операції

a = int(input("Введіть перше число: ")) b = int(input("Введіть друге число: ")) suma = a + b product = a * b print(f"Сума: {suma}, Добуток: {product}") # Вхідні дані: 5 та 3 # Вивід: Сума: 8, Добуток: 15

Зчитати визначену кількість значень з одного рядку

Зчитує три числа, розділені пробілами, та присвоює їх змінним x, y, z.

Базовий приклад - три числа

x, y, z = map(int, input().split()) # Вхідні дані: 10 20 30

Координати точки

x, y = map(int, input("Введіть координати x та y: ").split()) print(f"Точка знаходиться на координатах ({x}, {y})") # Вхідні дані: 5 10 # Вивід: Точка знаходиться на координатах (5, 10)

Дата народження

day, month, year = input("Введіть дату (день місяць рік): ").split() print(f"Ви народилися {day}.{month}.{year}") # Вхідні дані: 15 03 2000 # Вивід: Ви народилися 15.03.2000

Розміри прямокутника

width, height = map(float, input("Введіть ширину та висоту: ").split()) area = width * height perimeter = 2 * (width + height) print(f"Площа: {area}, Периметр: {perimeter}") # Вхідні дані: 5.5 3.2 # Вивід: Площа: 17.6, Периметр: 17.4

Зчитати багато значень з одного рядку

Зчитує довільну кількість чисел, розділених пробілами, та зберігає їх у список numbers.

Базовий приклад

numbers = list(map(int, input().split())) # Вхідні дані: 3 7 2 9 12

Обчислення середнього значення

grades = list(map(int, input("Введіть оцінки через пробіл: ").split())) average = sum(grades) / len(grades) print(f"Середній бал: {average:.2f}") # Вхідні дані: 90 85 92 88 95 # Вивід: Середній бал: 90.00

Пошук максимального та мінімального

temperatures = list(map(float, input("Введіть температури: ").split())) max_temp = max(temperatures) min_temp = min(temperatures) print(f"Мінімальна: {min_temp}°C, Максимальна: {max_temp}°C") # Вхідні дані: 18.5 22.3 19.8 25.1 20.5 # Вивід: Мінімальна: 18.5°C, Максимальна: 25.1°C

Фільтрування парних чисел

numbers = list(map(int, input("Введіть числа: ").split())) even_numbers = [n for n in numbers if n % 2 == 0] print(f"Парні числа: {even_numbers}") # Вхідні дані: 1 2 3 4 5 6 7 8 9 10 # Вивід: Парні числа: [2, 4, 6, 8, 10]

Зчитати дані в список (split)

Зчитує рядок даних, розділених комами, та зберігає їх у список data.

Базовий приклад - розділення комами

data = input().split(',') # Вхідні дані: яблуко,банан,апельсин,виноград

Список продуктів

products = input("Введіть список покупок через кому: ").split(',') print("Ваш список покупок:") for i, product in enumerate(products, 1): print(f"{i}. {product.strip()}") # Вхідні дані: молоко, хліб, яйця, масло # Вивід: # Ваш список покупок: # 1. молоко # 2. хліб # 3. яйця # 4. масло

Розділення за різними символами

# Розділення за крапкою з комою emails = input("Введіть email адреси: ").split(';') print(f"Кількість адрес: {len(emails)}") # Вхідні дані: user1@mail.com;user2@mail.com;user3@mail.com # Вивід: Кількість адрес: 3

Очищення пробілів

tags = [tag.strip() for tag in input("Введіть теги: ").split(',')] print(f"Теги: {tags}") # Вхідні дані: python , програмування , навчання , код # Вивід: Теги: ['python', 'програмування', 'навчання', 'код']

Зчитування кількох рядків

Заданна кількість рядків

n = int(input("Скільки імен ви хочете ввести? ")) names = [] for i in range(n): name = input(f"Введіть ім'я {i+1}: ") names.append(name) print(f"Список імен: {names}") # Вхідні дані: 3, Марія, Іван, Ольга # Вивід: Список імен: ['Марія', 'Іван', 'Ольга']

Зчитування до порожнього рядка

print("Введіть рядки тексту (порожній рядок для завершення):") lines = [] while True: line = input() if line == "": break lines.append(line) print(f"Ви ввели {len(lines)} рядків")

Додаткові корисні прийоми

Перевірка типу даних

user_input = input("Введіть число: ") if user_input.isdigit(): number = int(user_input) print(f"Ви ввели число: {number}") else: print("Це не число!") # Вхідні дані: 42 # Вивід: Ви ввели число: 42

Обробка помилок

try: age = int(input("Введіть ваш вік: ")) print(f"Вам {age} років") except ValueError: print("Помилка! Введіть ціле число.") # Вхідні дані: abc # Вивід: Помилка! Введіть ціле число.

Перевірка на порожній ввід

name = input("Введіть ваше ім'я: ").strip() if name: print(f"Привіт, {name}!") else: print("Ви не ввели ім'я!") # Вхідні дані: (порожній рядок) # Вивід: Ви не ввели ім'я!

Логічні значення (так/ні)

answer = input("Ви згодні? (так/ні): ").lower() if answer in ['так', 'yes', 'y']: print("Чудово!") elif answer in ['ні', 'no', 'n']: print("Шкода!") else: print("Не зрозуміло...") # Вхідні дані: так # Вивід: Чудово!
© 2024-2025 База знань по Python
ПідготувавКоворданій Володимир