На этом занятии
рассмотрим две функции:
-
input() – для ввода
данных с клавиатуры;
-
print() – для вывода
данных в консоль.
Начнем с первой. Вызвать функцию input можно таким
образом:
и после ее запуска среда выполнения
будет ожидать от нас ввода данных. Введем, допустим, число 5 и нажмем enter. Смотрите, эта
функция возвратила нам это число, но в виде строки:
‘5’
В действительности, данная функция
всегда возвращает строку, чего бы мы не вводили с клавиатуры. Ну хорошо, а как
нам сохранить в переменной введенное значение? Это можно сделать так:
Теперь, на все введенные данные будет
ссылаться переменная a.
Несмотря на то, что input всегда
возвращает строки, нам в программах в ряде случаев будет требоваться ввод
чисел. И здесь возникает вопрос: как число из строки преобразовать в обычное
число, которое можно будет в последствие использовать в арифметических
операциях? Это делается с помощью функции
int(<аргумент>)
Данная функция
пытается переданный аргумент преобразовать в число и вернуть уже числовое
значение. Например:
вернет число 5, или
преобразует
значение a в числовое.
Однако, здесь следует быть осторожным и иметь в виду, что если аргумент не
удается преобразовать в число, то возникнет ошибка:
Отлично, с этим
разобрались. Теперь мы можем преобразовывать строки в числа, используя такую
конструкцию:
Здесь сначала
сработает input, а затем,
введенное строковое значение будет преобразовываться в число и переменная a уже будет
ссылаться на числовое значение. Благодаря этому, данную переменную можно в
дальнейшем использовать в арифметических операциях, например:
и так далее (об
арифметических операциях речь пойдет на следующем занятии).
По аналогии с int работает функция
float(<аргумент>)
которая
преобразовывает строку в вещественное число. С ее помощью можно выполнять,
например, такие преобразования:
Каждый раз мы
будем получать вещественные значения. То есть, можно записывать и такую
конструкцию:
и вводить любые
вещественные числа.
В качестве
примера рассмотрим простую программу вычисления периметра прямоугольника:
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.