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