Appearance
Функция input() - ввод данных
За ввод в программу данных с клавиатуры в Python отвечает функция input()
. Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input()
заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.
Если в интерактивном режиме ввести команду input()
, то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter
или просто нажмете Enter
. Если вы что-то ввели, это сразу же отобразиться на экране:
py
answer = input() # Yes! - вводим в консоли
print(answer) # Yes! - выведется в консоль
Функция input()
передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
py
answer = input()
print(answer, 'No, it is not.') # <text> No, it is not.
В данном случае строка сохраняется в переменной answer, и при желании мы можем вывести ее значение на экран.
Куда интересней использовать функцию input()
в скриптах – отдельно взятых файлах с кодом. Рассмотрим такую программу:
py
user_name = input()
user_city = input()
print("Your name is {0}. Your own city is {1}.".format(user_name, user_city))
При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным nameUser и user_city
. После этого значения этих переменных выводятся на экран с помощью форматированного вывода:
txt
Den
NY
Your name is Den. Your own city is NY.
Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить в замешательство многозадачного биоробота, для функции input()
предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input()
. Усовершенствованная программа может выглядеть так:
py
user_name = input("Your name: ")
user_city = input("Your city: ")
print("Your name is {0}. Your own city is {1}".format(user_name, user_city))
Результат выполнения получиться следующий:
txt
Your name: Den
Your city: NY
Your name is Den. Your own city is NY.
Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input()
все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов:
py
number_1 = int(input("Enter the first number: "))
number_2 = int(input("Enter the second number: "))
print(number_1 + number_2)
Результат выполнения может быть следующий:
txt
Enter the first number: 5
Enter the second number: 2
7
В данном случае с помощью функций int()
или float()
строковые значения переменных number_1
и number_2
преобразуются соответственно в целое число или дробное число. После этого новые численные значения присваиваются тем же переменным.
Упражнения
Напишите программу, которая запрашивала бы у пользователя:
- его имя (например, «What is your name?»)
- возраст («How old are you?»)
- место жительства («Where do you live?»)
После этого выводила бы три строки:
txtWhat is your name? Bob How old are you? 77 Where do you live? Dublin "This is Bob." "(S)he is 77." "(S)he lives in Dublin."
Значения
имя
,возраст
,место_жительства
- произвольные, вводимые пользователем.Напишите программу, которая предлагала бы пользователю ввести три числа, а затем решить пример составленный из введенных чисел. Потом выводила бы на экран правильный ответ и ответ пользователя. Пример должен вычисляться. Подумайте, нужно ли здесь преобразовывать строку в число.
Результат выполнения может быть следующий:
txtEnter the first number: 4 Enter the second number: 100 Enter the third number: 54 Solve example: 4 * 100 - 54 = 123 Your answer: 123 True answer: 346
Другой пример выполнения этой же программы:
txtEnter the first number: 14 Enter the second number: 3 Enter the third number: 105 Solve example: 14 * 3 - 105 = -58 Your answer: -58 True answer: -63
Запросите у пользователя четыре числа. Отдельно сложите первые два, отдельно вторые два числа и выведите суммы. Разделите первую сумму на вторую и выведите результат на экран.
Результат выполнения может быть следующий:
txtEnter the first number: 17 Enter the second number: 3 Enter the third number: 8 Enter the fourth number: 2 The sum of the first pair numbers is 20 The sum of the second pair numbers is 10 Division of sums equals 2.0