Ввод данных, команда input(), переменные
Все предыдущие программы выводили на экран текст, известный в момент написания программного кода. Однако программы могут работать с данными, которые станут известны только во время выполнения программы. Другими словами, программы могут считывать данные, а затем их использовать.
Для считывания данных в языке Python используется команда input()
.
Рассмотрим следующую программу:
print('Как тебя зовут?')
print('Привет,', input())
Сначала программа распечатает текст на экран 'Как тебя зовут?'
. Далее программа будет ждать от пользователя ввода данных. Ввод данных реализуется с помощью команды input()
. И в конце произойдет вывод текста вместе с введенными от пользователя данными.
Команда input()
всегда пишется с круглыми скобками. Она работает так: когда программа доходит до места, где есть input()
, она ждет, пока пользователь введет текст с клавиатуры (ввод завершается нажатием клавиши Enter). Введенная строка подставляется на место input()
.
Если вы используете IDE VS Code, то у вас ввод будет требоваться в окне TERMINAL. Сюда и нужно вводить текст:
В VS Code после введения текста нужно нажать клавишу Enter:
После нажатия клавиши Enter у нас был выведен текст 'Привет, Сэм'
, и программа завершила свою работу.
Если вы ввели строку Сэм
, программа дальше работала так же, словно на месте input()
было написано 'Сэм'
.
Таким образом, команда input()
получает от пользователя (нас) какие-то данные и вместо вызова подставляет строковое значение.
Запоминаем:
Команда print()
выводит данные на экран.
Команда input()
считывает данные, введенные с клавиатуры.
Переменные
Команда input()
обозначает: "подожди, пока пользователь введет что-нибудь с клавиатуры, и запомни то, что он ввел". Просто так просить "запомнить" довольно бессмысленно: нам ведь потом надо будет как-то сказать компьютеру, чтобы он вспомнил то, что запомнил! Для этого мы используем переменные и пишем следующий код:
variable_name = input()
print('Вы ввели текст:', variable_name)
Данный код означает: "Сохрани то, что ввел пользователь, в памяти, и дальше это место в памяти мы будем называть именем variable_name
". Соответственно, команда print(variable_name)
означает: "Посмотри, что лежит в памяти под именем variable_name
, и выведи это на экран".
Вот такие "места в памяти" и называются переменными. Любая переменная имеет имя и значение.
Переменные в команде print()
Как вы заметили, мы можем использовать переменные в команде print()
. Для этого мы просто указываем имя переменной без кавычек внутри круглых скобок как аргумент.
Приведенный ниже код:
city = 'Тула'
print(city, '- мой город!')
выводит:
Тула - мой город!
Мы можем использовать несколько переменных в команде print()
, нам это никто не запрещает. Только стоит помнить, что аргументы в команде print()
нужно отделять запятыми друг от друга.
Приведенный ниже код:
name = 'Алеша'
city = 'Тула'
print('Меня зовут', name, '.', city, '- мой город!')
выводит:
Меня зовут Алеша . Тула - мой город!
Имя переменной
- В имени переменной рекомендуется использовать только латинские буквы
a-z
, A-Z
, цифры и символ нижнего подчеркивания (_
)
- Имя переменной не может начинаться с цифры
- Имя переменной не может содержать пробелы
- Имя переменной по возможности должно отражать ее назначение
Запомни: Python — регистрочувствительный язык. Переменная name
и Name
— две совершенно разные переменные.
Для именования переменных принято использовать стиль lower_case_with_underscores
(слова из маленьких букв с подчеркиваниями). Например, следующие имена для переменных хорошие:
server_response
is_password_good
username
cyberpunk_77
Значение переменной
Значение переменной — это сохраненная в ней информация: текст, число и т.д.
Символ =
в языках программирования выступает в роли оператора присваивания. Он выполняет задачу связывания значения, расположенного справа от него, с именем переменной, указанной слева. Таким образом, переменная слева "принимает" или "хранит" значение, представленное выражением справа от знака =
:
Запомни: интерпретатор ждет, что пользователь что-то введет с клавиатуры ровно столько раз, сколько команд input()
встречается в программе. Каждый input()
завершается нажатием Enter на клавиатуре.
Значения переменной, естественно, можно менять (переприсваивать).
print('Как тебя зовут?')
name = input()
print('Привет,', name)
name = 'Timur'
print('Привет,', name)
Оператор присваивания сообщает переменной то или иное значение независимо от того, была ли эта переменная введена раньше. Вы можете менять значение переменной, записав еще один оператор присваивания. Если у нас имеется переменная, мы можем делать с ней все что угодно — например, присвоить другой переменной или изменить значение.
Приведенный ниже код:
name1 = 'Тимур'
name2 = name1
name1 = 'Гвидо'
print(name1)
print(name2)
выводит:
Гвидо
Тимур
Запомни: название переменной всегда должно быть слева от знака равенства.
Приведенный ниже код:
'Timur' = name
приводит к возникновению ошибки:
SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?
Примечания
Примечание 1. Очень часто перед считыванием данных мы печатаем некоторый текст, чтобы пользователь, который вводит эти данные, понимал, что именно от него требуется. Например, в программе:
print('Как тебя зовут?')
name = input()
Мы сначала выведем текст "Как тебя зовут?", а уже потом считаем данные.
Поскольку это достаточно распространенный сценарий, то в языке Python можно выводить текст, передавая его в качестве параметра в команду input()
. Предыдущий код можно переписать так:
name = input('Как тебя зовут?')
То есть команда input()
при наличии аргументов внутри нее отрабатывает одновременно как вывод текста, а потом ввод текста (именно в этом порядке). Однако в задачах нашего курса нужно использовать команду input()
без параметров! Так как это будет лишний вывод, ваша программа не будет проходить тесты.
Примечание 2. Имейте в виду, что мы можем принимать сразу несколько строк, а потом со всеми ними работать.
first = input()
second = input()
print('I am', first, 'and', second)
Например, если на вход программе будут поданы строки:
cool
I know it
то она выведет следующее:
I am cool and I know it
Примечание 3. Переменные можно вводить в любой момент (не только в самом начале программы):
name_1 = input()
print('Привет, ', name_1, '!')
name_2 = input()
print('Здравствуйте, ', name_2, '.')
Например, если на вход программе будут поданы строки:
Билл
Тед
то она выведет следующее:
Привет, Билл !
Здравствуйте, Тед .