Введення виведення даних, перетворення типів в 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)
Форматне виведення даних
З розвитком мови 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