Алла Тамбовцева, НИУ ВШЭ
Иногда возникает необходимость запросить какую-нибудь информацию у пользователя — попросить ввести её с клавиатуры. Это может быть нужно, например, когда мы пытаемся имитировать заполнение какой-нибудь формы (собрать информацию и обработать) или написать функцию, которая будет работать по-разному в зависимости от режима ("Если хотите выгрузить данные из файла, нажмите 1, если хотите вводить данные вручную, введите 2").
Запросить данные с клавиатуры можно с помощью функции input()
:
input("Введите что-нибудь: ")
Введите что-нибудь: нечто
'нечто'
Однако обычно нам нужно не просто вывести на экран то, что ввел пользователь (он и сам это видит), но и сохранить введенную информацию. Сделаем это (и заодно перейдем к числам).
num = input("Введите какое-нибудь число: ")
Введите какое-нибудь число: 5
Теперь мы можем работать с переменной num
, в которую мы сохранили результат ввода с клавиатуры.
num
'5'
Введенное нами число 5 сохранилось. Однако, если посмотреть внимательнее, это не совсем число: число пять стоит в кавычках. Это строка! То есть обычный текст. Проверим:
type(num) # действительно
str
Тут нам как раз и пригодится преобразование типов переменных:
num = int(num)
num
5
И теперь всё сразу: правильно и компактно.
num = int(input("Введите какое-нибудь число: "))
num
Введите какое-нибудь число: 23
23
Раз мы не предлагаем пользователю ввести именно целое число, число может быть любым, даже дробным. Учтем это – будем конвертировать введенный текст в число с плавающей точкой.
num = float(input("Введите какое-нибудь число: "))
num
Введите какое-нибудь число: 7.5
7.5
С клавиатуры можно вводить сколько угодно объектов:
numbers = input("Введите числа через пробел: ")
Введите числа через пробел: 2 3
numbers
'2 3'
Только тогда для работы с отдельными элементами ввода потребуется разбить строку на части по какому-нибудь символу (в нашем случае – по пробелу). О разбиении текста на части поговорим позже, когда будем обсуждать работу со строками, а пока разберём вывод информации на экран.
Как мы уже знаем, для вывода чего-либо на экран в Python существует функция print()
:
print(5)
print('Hello!')
5 Hello!
Для того, чтобы вывести на экран сразу несколько объектов, нужно просто перечислить их через запятую в круглых скобках.
age = 25
print('Your age is', age)
Your age is 25
По умолчанию в качестве разделителей (отделяющих объекты друг от друга) используются пробелы. Но при желании это можно поправить, добавив аргумент sep
(от separator – разделитель):
print(2, 3, sep='-')
2-3
print(2, 3, sep='------')
2------3