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

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

Для зчитування рядка зі стандартного пристрою введення 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(intinput().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= – символ, що ставиться в кінці рядка (за замовчуванням – символ кінця рядка)
  • 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