Разберем, как работают функции ввода и вывода данных — 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
, если ответ пользователя неправильный, то выводим его ответ и показываем правильный.