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