Введення-виведення даних, перетворення типів в Python

Введення даних.

Для зчитування рядка зі стандартного пристрою введення sys.stdin (клавіатура) в мові Python передбачено функцію input([prompt]).

Необов’язковий параметр prompt, призначений для вказання запрошення до введення, та буде виведений на стандартний пристрій виведення sys.stdout (екран).

Формат функції вводу:

  • Змінна = input([prompt])

Приклад: скласти програму, яка буде запитувати ім’я користувача, а потім з ним привітається.

  • name = input('Як Вас звати?')
  • print('Вітаю', name)

Перетворення типів.

Однак, функція input повертає лише значення рядкового типу і для того щоб змінні, наприклад, мали цілочисельні значення треба виконати перетворення типів за допомогою функції int().

Приклад:

  • a = input()
    # вводимо 3
  • b = input()
    # вводимо 5
  • a = int(a)
  • b = int(b)
  • x = a + b
  • print(x)
    # отримаємо 8

Але в мові Python можна об’єднати зчитування рядків і перетворення типів, якщо викликати функцію int() для того значення, яке поверне функція input():

Приклад:

  • a = int(input())
    # вводимо 3
  • b = int(input())
    # вводимо 5
  • x = a + b
  • print(x)
    # отримаємо 8

Бувають випадки, коли треба зчитувати значення змінних, які записані в окремому рядку, в цьому випадку доцільно використовувати метод split(), котрий розділяє рядок на частини по одному або декільком пропускам (можуть бути використані також інші символи пропуску зокрема табуляція).

Приклад:

  • a, b = input().split()

Для того щоб одночасно зчитувати значення змінних, які записані в окремому рядку та виконувати перетворення їх типів, треба додатково використовувати функцію map(), яка застосовує до кожного елементу списку задану функцію.

Приклад:

  • a, b = map(int, input().split())

Також, можна перетворити рядок і в дробове число, для цього треба застосовувати функцію float().

Приклад:

  • a = float(input())
    # вводимо 5.2
  • b = float(input())
    # вводимо 3.4
  • print(float(a)+ float(b))
    # отримаємо 8.6

Дробові числа можна перетворити у цілі функцією int(). Зверніть увагу: int() НЕ округлює числа за правилами арифметики, а просто відкидає дробову частину.

Приклад:

  • a = 8.6
  • print(int(a))
    # отримаємо 8

Виведення даних.

Для виведення результату роботи програми на стандартний пристрій виведення sys.stdout (екран), може бути використана функція print().

Формат функції виводу:

  • print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Аргументи функції:

  • *objects – перераховані через кому об’єкти (змінні, рядки, константи), значення яких потрібно виводити

    Приклад:

    • a = 1
    • b = 2
    • print(a, '+', b, '=', a + b)
      # результат –> 1 + 2 = 3
  • sep=' ' – роздільник, який потрібно ставити між об’єктами що виводяться (за замовчуванням – пропуск). Для виводу спеціальних символів використовують Escape-послідовності, ось деякі з них:
    • \' – одинарна лапка
    • \'' – подвійна лапка
    • \? – знак питання
    • \\ – зворотний слеш
    • \n – новий рядок
    • \t – горизонтальна табуляція
    • \v – вертикальна табуляція

    Приклад:

    • a = 1
    • b = 2
    • с = 3
    • print(a,b,с, sep=':')
      # результат –> 1:2:3
  • end='\n' – символ, що ставиться в кінці рядка (за замовчуванням – символ кінця рядка)
  • file=sys.stdout – виведення в файл. Об’єкт file повинен бути об’єктом з методом write(str). print() можна використовувати тільки для текстових файлів.
  • flush=False – примусове очищення буфера виводу (за замовчуванням – немає, оскільки зазвичай визначається файлом).

Приклад: скласти програму, яка буде виводити на екран суму двох чисел

  • print(5+3)
    # результат –> 8

Приклад: скласти програму, яка буде зчитувати числові дані введені користувачем з клавіатури у змінні a та b, а потім виводити на екран їх добуток.

  • a=int(input('Введіть перше число a = '))
  • b=int(input('Введіть друге число b = '))
  • print('a', '*', 'b', '=', a*b)