Статья Автор: Александр Ф. Алейников

2.2.2 Ввод данных, команда input(), переменные

Ввод данных, команда 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, '- мой город!')

выводит:

Меня зовут Алеша . Тула - мой город!

Имя переменной

  1. В имени переменной рекомендуется использовать только латинские буквы a-z, A-Z, цифры и символ нижнего подчеркивания (_)
  2. Имя переменной не может начинаться с цифры
  3. Имя переменной не может содержать пробелы
  4. Имя переменной по возможности должно отражать ее назначение

Запомни: 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, '.')      # делаем второй вывод

Например, если на вход программе будут поданы строки:

Билл
Тед

то она выведет следующее:

Привет, Билл !
Здравствуйте, Тед .
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать