Функции input и print ввода/вывода

Функции 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 мы уже немного говорили на предыдущем занятии, здесь рассмотрим подробнее различные возможности ее использования. Например, эту функцию можно записывать в таких вариациях:

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.

https://www.youtube.com/watch?v=HrlUxTOxil4&list=PLA0M1Bcd0w8xIdFNA95aQrwJ_GQJEV8ko