Введення виведення даних, перетворення типів в 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=&#39\n&#39 – символ, що ставиться в кінці рядка (за замовчуванням – символ кінця рядка)
  • 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)

Форматне виведення даних

З розвитком мови Python для функції print() стали доступні нові методи, що допомагають створювати зрозумілі та зручні для читання повідомлення.

Метод str.format() – виконує операцію форматування рядка. Повертає копію рядка, в якому кожне замінне поле замінюється рядковим значенням відповідного аргументу.

Приклад:

  • name = "Jane"
  • age = 16
  • print("Мене звати {}, мені {} років.".format(name, age)) # результат –> Мене звати Jane, мені 16 років.

Між даними зі списку можна виводити інші символи.

Приклад:

  • a = 10
  • b = 15
  • print("{}+{}={}".format(a, b, a+b)) # результат –> 10+15=25

Як бачимо, рядок виводу будується за допомогою функції .format(). Аргументи цієї функції, знаходяться у дужках – це дані, які виводяться. Символьний рядок зліва від точки – це форматний рядок, який визначає, як саме дані будуть представлені на екрані. Фігурні дужки позначають місце для виведення чергового елемента в порядку їх перерахування у списку аргументів функції.

Налаштуємо відображення чисел.

Приклад:

  • x = 1234.56789714285
  • print(“x = {:0.2f}”.format(x)) # результат –> x = 1234.57

Коли проводяться розрахунки з дійсними числами – за замовчуванням виводиться 16 цифр. Якщо такий варіант не влаштовує, застосовують форматований вивід. Тут після двокрапки вказано формат f, за умовчанням він залишає 6 цифр у дробовій частині числа. Перед літерою f можна записати два числа через точку. Перше число задає загальну кількість позицій, відведене на виведення значення, а друге – кількість цифр у дробовій частині.

Форматування за допомогою f-рядків – робить процес форматування рядків зручним, швидким та лаконічним. Синтаксис аналогічний тому, що використовується в .format(), але менш складний. Але вам необхідно лише запустити рядковий літерал з малої або великої літери f, а потім вставити значення, об’єкти або вирази у фігурні дужки у певних місцях.

Приклад:

  • name = "Jane"
  • age = 16
  • print(f"Мене звати {name}, мені {age} років.") # результат –> Мене звати Jane, мені 16 років.

Виконуємо обчислення всередині фігурних дужок f-рядка.

Приклад:

  • a = 10
  • b = 15
  • print(f"{a}+{b}={a+b}") # результат –> 10+15=25

Налаштовуємо відображення чисел.

Приклад:

  • pi = 3.1415926535
  • print(f"Число π: {pi:0.2f}") # результат –> 3.14