Основы программирования в Python

Алла Тамбовцева, НИУ ВШЭ

Ввод информации с клавиатуры

Иногда возникает необходимость запросить какую-нибудь информацию у пользователя — попросить ввести её с клавиатуры. Это может быть нужно, например, когда мы пытаемся имитировать заполнение какой-нибудь формы (собрать информацию и обработать) или написать функцию, которая будет работать по-разному в зависимости от режима ("Если хотите выгрузить данные из файла, нажмите 1, если хотите вводить данные вручную, введите 2").

Запросить данные с клавиатуры можно с помощью функции input():

In [1]:
input("Введите что-нибудь: ")
Введите что-нибудь: нечто
Out[1]:
'нечто'

Однако обычно нам нужно не просто вывести на экран то, что ввел пользователь (он и сам это видит), но и сохранить введенную информацию. Сделаем это и заодно перейдем к числам.

In [2]:
num = input("Введите какое-нибудь число: ")
Введите какое-нибудь число: 5

Теперь мы можем работать с переменной num, в которую мы сохранили результат ввода с клавиатуры.

In [3]:
num
Out[3]:
'5'

Введенное нами число 5 сохранилось. Однако, если посмотреть внимательнее, это не совсем число: число пять стоит в кавычках. Это строка! То есть обычный текст. Проверим:

In [4]:
type(num) # действительно
Out[4]:
str

Тут нам как раз и пригодится преобразование типов переменных:

In [5]:
num = int(num)
num
Out[5]:
5

И теперь всё сразу: правильно и компактно.

In [6]:
num = int(input("Введите какое-нибудь число: "))
num
Введите какое-нибудь число: 7
Out[6]:
7

Раз мы не предлагаем пользователю ввести именно целое число, число может быть любым, даже дробным. Учтём это – будем конвертировать введенный текст в число с плавающей точкой.

In [7]:
num = float(input("Введите какое-нибудь число: "))
num
Введите какое-нибудь число: 7.5
Out[7]:
7.5

С клавиатуры можно вводить сколько угодно объектов:

In [8]:
numbers = input("Введите числа через пробел: ")
Введите числа через пробел: 2 3
In [9]:
numbers
Out[9]:
'2 3'

Только тогда для работы с отдельными элементами ввода потребуется разбить строку на части по какому-нибудь символу (в нашем случае – по пробелу). О разбиении текста на части поговорим позже, когда будем обсуждать работу со строками, а пока разберём вывод информации на экран.

Вывод информации на экран

Как мы уже знаем, для вывода чего-либо на экран в Python существует функция print():

In [10]:
print(5)
print('Hello!')
5
Hello!

Для того, чтобы вывести на экран сразу несколько объектов, нужно просто перечислить их через запятую в круглых скобках.

In [11]:
age = 23
print('Your age is ', age)
Your age is  23

По умолчанию в качестве разделителей (отделяющих объекты друг от друга) используются пробелы. Но при желании это можно поправить, добавив аргумент sep (от separator – разделитель):

In [1]:
print(2, 3, sep='-')
2-3
In [2]:
print(2, 3, sep='------')
2------3