Функции input() и print() в Python

Ввод данных input() и вывод данных print() в Python — работа с функциями и примеры использования

Разберем, как работают функции ввода и вывода данных — input() и print() в Python. Начнем с функции print().

Функция вывода print()

Функция print() выводит на экран или в файл все переданные в нее аргументы.

Синтаксис функции print()

print()

Полный синтаксис выглядит так:

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

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

objects – объект, который нужно вывести, знак * означает, что объектов для вывода может быть несколько.
sep – разделяет объекты при выводе. По умолчанию: sep=' '.
end – это что выводится после вывода всех объектов, по умолчанию это перенос строки;
file – служит для вывода в файл, ожидается объект с методом write (string). Если значение не задано, происходит вывод на экран;
flush – если задано значение True, поток принудительно сбрасывается. Значение по умолчанию: False.

Примеры работы функции print()

Эта функция выводит все, что у нее в скобках:

print(1)
print(1, 2, 3)
print('текст')
#1
#1 2 3
#текст

А также любые типы данных:

my_list = ['один', 'два', 'три']
my_bool = True
a = 1234
print(my_list)
print(my_bool)
print(a)
#['один', 'два', 'три']
#True
#1234

И выражения:

a = 5
b = 5
print(1 + 2)
print(a / b)
print('hello' + ' ' + 'world')
#3
#1.0
#hello world

Применение параметра sep в функции print()

Sep — сокращенно separator — разделитель (по умолчанию это пробел), с его помощью разделяем объекты вывода любыми символами и строками.

print(1, 2, 3, 4, sep=' | ')
#1 | 2 | 3 | 4
print('https:/', 'fullstacker.ru', 'contacts', sep='/')
#https://fullstacker.ru/contacts
print(1, 2, 3, 4, sep='\n')
#1
#2
#3
#4

Применение параметра end в функции print()

С его помощью можно предотвратить перенос строки в конце вывода, по умолчанию, как раз и стоит перенос строки, т.е. end='\n'. Или же просто добавлять что-то к выводимому объекту в конце.

print('сделаем вывод')
print('в одну')
print('строку')
#сделаем вывод
#в одну
#строку
print('сделаем вывод', end=' ')
print('в одну', end=' ')
print('строку')
#сделаем вывод в одну строку

Эти параметры можно совмещать:

a = 'На старт'
b = 'внимание'
c = 'марш'
print(a, b, c, sep=', ', end='!')
#На старт, внимание, марш!

Применение параметра file в функции print()

С помощью этого параметра мы можем вывести информацию не на экран, а в файл:

my_file = open('test.txt', 'w')
print('Запишем строку в файл!', file = my_file)
my_file.close()

В результате в файл test.txt будет записана строка Запишем строку в файл!. Если файла test.txt не было, то он будет создан.

Вывод с помощью f-строк

Допустим нам нужно вывести что-то, что содержит в себе много переменных, стандартным способом это будет выглядеть так:

name = 'Роман'
age = '7'
level = '1'
school = '6'
print('Имя: ', name, '. ', 'Возраст: ', age, ' лет. Ученик ', level, ' класса. СОШ №', school, '.', sep='')
#Имя: Роман. Возраст: 7 лет. Ученик 1 класса. СОШ №6.

Не очень удобно и код читается так себе.

В этом случае нам помогут f-строки. Перед объектом вывода ставим букву f и далее в фигурных скобках указываем переменные, которые нужно вывести:

name = 'Роман'
age = '7'
level = '1'
school = '6'
print(f'Имя: {name}. Возраст: {age} лет. Ученик {level} класса. СОШ №{school}.')
#Имя: Роман. Возраст: 7 лет. Ученик 1 класса. СОШ №6.

Так гораздо удобнее.

Функция ввода input()

За ввод пользовательских данных с клавиатуры в Python отвечает функция input().

Синтаксис

input([prompt])

Когда интерпретатор доходит до функции input(), выполнение программы останавливается и ожидается ввод данных от пользователя.
Пользователь вводит данные, нажимает Enter, программа продолжает по алгоритму.

Пример работы функции input()

name = input()
print(f'Привет, {name}!')
#Саша
#Привет, Саша!

С клавиатуры мы вводим Саша, эта информация присваивается переменной name и далее Python функцией print() выводит приветствие, используя переменную с веденными ранее данными.

У функции input() есть необязательный параметр prompt — он служит подсказкой и отображается перед вводом данных:

name = input('Введите свое имя: ')
print(f'Привет, {name}!')
#Введите свое имя: Александр
#Привет, Александр!

Теперь при вводе данных будет написано Введите свое имя: и далее переложение ввести имя.

Преобразование вводимых данных input()

Я уже писал подробно о типах данных в Python, здесь разберем только преобразования в input().

По умолчанию, все данные, которые вводятся через функцию print() — строки:

a = input()
print(type(a))
#10
#<class 'str'>

Даже если мы введем числа, то это будут строки, и работать с ними как с числами мы не сможем:

a = input()
b = input()
print(a + b)
#1
#2
#12

Мы ввели числа 1 и 2, далее функцией print() хотели вывести сумму чисел, но получили 12. Все потому, что это строки и происходит конкатенацией или объединением, вместо числового сложения.

Для преобразования строк в числа нужно пользоваться функциями.

Input() → int преобразование в целое число

Для того, чтобы получить целое число, введенное в функцию ввода данных, нужно пользоваться функцией int():

a = int(input())
b = int(input())
print(a + b)
#1
#2
#3

Мы ввели числа, 1 и 2, как и в предыдущем примере, но с помощью функции int() мы преобразовали их в числа и в итоге получили сумму этих чисел.

Input() → float преобразование в дробные числа (вещественные)

Для этого используем функцию float(), также, как и в предыдущем примере:

a = float(input())
b = float(input())
print(a + b)
#1.5
#2.5
#4.0

Задачки на использование input() и print()

Рассмотрим практическое применение этих функций на простых задачах.

Рассчитаем периметр прямоугольника

Пользователю необходимо ввести длину и ширину прямоугольника (целые числа), на выходе рассчитать периметр прямоугольника:

width = int(input('Введите длину прямоугольника: '))
height = int(input('Введите ширину прямоугольника: '))
p = (width + height) * 2
print(f'Периметр прямоугольника: {p}')
#Введите длину прямоугольника: 10
#Введите ширину прямоугольника: 20
#Периметр прямоугольника: 60

С помощью функции input() получаем данные от пользователя, преобразуем их функцией int() в целые числа и присваиваем переменным width и height.
По формуле периметра прямоугольника P=(a+b)*2, вычисляем периметр и присваиваем это значение в переменную p.
Выводим результат с помощью функции print().

Предложить пользователю решить пример

Есть пример 4 * 100 — 100, получить ответ от пользователя и сравнить с правильным.

print('Решите пример 4 * 100 - 100')
a = int(input('Ваш ответ: '))
if a == 300:
print('Ответ правильный, 4 * 100 - 100 = 300')
else:
print(f'Ответ {a} неверный. Правильный ответ: 4 * 100 - 100 = 300')
#Решите пример 4 * 100 - 100
#Ваш ответ: 300
#Ответ правильный, 4 * 100 - 100 = 300

Первой функцией print() выведем пример и предложим его решить. Далее запрашиваем ответ с помощью функции input(), приводим его к целому числу и присваиваем переменной a.
Создаем условие, если ответ пользователя правильный — выводим Ответ правильный, 4 * 100 - 100 = 300, если ответ пользователя неправильный, то выводим его ответ и показываем правильный.

Содержание: