Функция input() - ввод данных
За ввод в программу данных с клавиатуры в Python отвечает функция input()
. Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input()
заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.
Если в интерактивном режиме ввести команду input()
, то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter
или просто нажмете Enter
. Если вы что-то ввели, это сразу же отобразиться на экране:
answer = input() # Yes! - вводим в консоли
print(answer) # Yes! - выведется в консоль
2
Функция input()
передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
answer = input()
print(answer, 'No, it is not.') # <text> No, it is not.
2
В данном случае строка сохраняется в переменной answer, и при желании мы можем вывести ее значение на экран.
Куда интересней использовать функцию input()
в скриптах – отдельно взятых файлах с кодом. Рассмотрим такую программу:
user_name = input()
user_city = input()
print("Your name is {0}. Your own city is {1}.".format(user_name, user_city))
2
3
При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным nameUser и user_city
. После этого значения этих переменных выводятся на экран с помощью форматированного вывода:
Den
NY
Your name is Den. Your own city is NY.
2
3
Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить в замешательство многозадачного биоробота, для функции input()
предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input()
. Усовершенствованная программа может выглядеть так:
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))
2
3
Результат выполнения получиться следующий:
Your name: Den
Your city: NY
Your name is Den. Your own city is NY.
2
3
Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input()
все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов:
number_1 = int(input("Enter the first number: "))
number_2 = int(input("Enter the second number: "))
print(number_1 + number_2)
2
3
Результат выполнения может быть следующий:
Enter the first number: 5
Enter the second number: 2
7
2
3
В данном случае с помощью функций int()
или float()
строковые значения переменных number_1
и number_2
преобразуются соответственно в целое число или дробное число. После этого новые численные значения присваиваются тем же переменным.
Упражнения
Напишите программу, которая запрашивала бы у пользователя:
- его имя (например, «What is your name?»)
- возраст («How old are you?»)
- место жительства («Where do you live?»)
После этого выводила бы три строки:
What 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."
1
2
3
4
5
6
7Значения
имя
,возраст
,место_жительства
- произвольные, вводимые пользователем.Напишите программу, которая предлагала бы пользователю ввести три числа, а затем решить пример составленный из введенных чисел. Потом выводила бы на экран правильный ответ и ответ пользователя. Пример должен вычисляться. Подумайте, нужно ли здесь преобразовывать строку в число.
Результат выполнения может быть следующий:
Enter 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
1
2
3
4
5
6
7Другой пример выполнения этой же программы:
Enter 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
1
2
3
4
5
6
7Запросите у пользователя четыре числа. Отдельно сложите первые два, отдельно вторые два числа и выведите суммы. Разделите первую сумму на вторую и выведите результат на экран.
Результат выполнения может быть следующий:
Enter 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
1
2
3
4
5
6
7