Функции input и print ввода/вывода
На этом занятии рассмотрим две функции:
- input() – для ввода данных с клавиатуры;
- print() – для вывода данных в консоль.
Начнем с первой.
input()
Вызвать функцию input можно таким образом:
input()
и после ее запуска среда выполнения будет ожидать от нас ввода данных. Введем, допустим, число 5 и нажмем enter. Смотрите, эта функция возвратила нам это число, но в виде строки:
‘5’
В действительности, данная функция всегда возвращает строку, чего бы мы не вводили с клавиатуры. Ну хорошо, а как нам сохранить в переменной введенное значение? Это можно сделать так:
a = input()
Теперь, на все введенные данные будет ссылаться переменная a.
Несмотря на то, что input всегда возвращает строки, нам в программах в ряде случаев будет требоваться ввод чисел. И здесь возникает вопрос: как число из строки преобразовать в обычное число, которое можно будет в последствие использовать в арифметических операциях?
Это делается с помощью функции
int(<аргумент>)
Данная функция пытается переданный аргумент преобразовать в число и вернуть уже числовое значение. Например:
int('5')
вернет число 5, или
int(a)
преобразует значение a в числовое. Однако, здесь следует быть осторожным и иметь в виду, что если аргумент не удается преобразовать в число, то возникнет ошибка:
int('12dfd')
Отлично, с этим разобрались. Теперь мы можем преобразовывать строки в числа, используя такую конструкцию:
a = int(input())
Здесь сначала сработает input, а затем, введенное строковое значение будет преобразовываться в число и переменная a уже будет ссылаться на числовое значение. Благодаря этому, данную переменную можно в дальнейшем использовать в арифметических операциях, например:
a+2
и так далее (об арифметических операциях речь пойдет на следующем занятии).
По аналогии с int работает функция
float(<аргумент>)
которая преобразовывает строку в вещественное число. С ее помощью можно выполнять, например, такие преобразования:
float('3') float('4.5')
Каждый раз мы будем получать вещественные значения. То есть, можно записывать и такую конструкцию:
a = float(input())
и вводить любые вещественные числа.
В качестве примера рассмотрим простую программу вычисления периметра прямоугольника:
w = float(input()) h = float(input()) p = 2*(w+h) print(p)
Но здесь есть небольшое неудобство: при вводе значений пользователь не знает, что именно ему вводить. Нужно написать подсказки. Это реализуется так:
w = float(input("Введите ширину: ")) h = float(input("Введите длину: "))
Теперь, он видит сообщение и понимает что нужно вводить с клавиатуры.
О функции print мы уже немного говорили на предыдущем занятии, здесь рассмотрим подробнее различные возможности ее использования. Например, эту функцию можно записывать в таких вариациях:
print(1) print(1, 2) print(1, 2, 3)
И так далее, число аргументов может быть произвольным. Соответственно все эти значения в строчку будут выведены в консоли.
Причем, значения разделяются между собой пробелом. Это разделитель, который используется по умолчанию.
Если нужно изменить значение этого разделителя, то для этого используется специальный именованный аргумент sep:
print(1, 2, 3, sep=",") print(1, 2, 3, sep="-") print(1, 2, 3, sep="***")
то есть, здесь можно прописывать самые разные строки-разделители.
Далее, вы уже заметили, что каждый вызов функции print делает перевод строки. Этот символ автоматически добавляет в конец выводимых данных. Но, мы также можем его изменить. Для этого используется именованный аргумент end:
print(1, 2, 3, sep=",", end=':') print(1, 2, 3, sep="-", end='--end--\n') print(1, 2, 3, sep="***")
Смотрите, теперь у нас после первой строчки нет перевода строки, а поставлено двоеточие с пробелом, которые мы указали в аргументе end. После второго вывода в конце была добавлена строчка и указан символ ‘\n’ перевода строки.
В качестве примера все это можно использовать для более гибкого вывода значений с помощью print:
name = "Федор" print("Имя", name, sep=":")
Но это не самый удобный вывод значений. Функция print позволяет делать довольно гибкий форматированный вывод данных с применением спецификаторов. Например:
name = "Федор"; age = 18 print("Имя %s, возраст %d"%(name, age))
В результате, вместо спецификатора %s будет подставлена первая переменная, указанная в скобках, в виде строки, а вместо %d – вторая переменная age в виде целого числа.
То есть, для каждого типа данных существует свой спецификатор.
Наиболее употребительные, следующие:
- %d, %i, %u – для вывода целочисленных значений;
- %f – для вывода вещественных значений;
- %s – для вывода строк;
- %% – для вывода символа %
Вот основные возможности функций input и print в Python.