20 дек. 2000 г.

Ввведение в программирование на Python (для детей) урок 6

Ввод данных с клавиатуры.


Компьютерные программы обрабатывают данные, производя над ними операции, которые задал программист, и которые были обусловлены поставленными задачами. Данные в программу можно "заложить" в процессе ее разработки. Однако такая программа всегда будет обрабатывать одни и те же данные и возвращать один и тот же результат. Чаще требуется совершенно другое — программа должна обрабатывать разные (относительно, в определенном диапазоне) данные, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы или клавиатура. Когда информация вводится с клавиатуры, а результаты выводятся на экран монитора, то можно говорить об интерактивном режиме работы программы. Она обменивается информацией с внешней для нее средой: может выводить и получать данные в процессе выполнения, и не является замкнутой сама на себе. С выводом данных мы уже отчасти знакомы: выводом на экран (и не только) в языке программирования Python занимается функция print().
Ввод данных с клавиатуры в программу (начиная с версии Python 3.0) осуществляется с помощью функции input(). Когда данная функция выполняется, то поток выполнения программы останавливается в ожидании данных, которые пользователь должен ввести с помощью клавиатуры. После ввода данных и нажатия Enter, функция input() завершает свое выполнение и возвращает результат, который представляет собой строку символов, введенных пользователем.

>>> input()
1234
'1234'
>>> input()
Hello World!
'Hello World!'
>>> 
Когда выполняющаяся программа предлагает пользователю что-либо ввести, то пользователь может не понять, что от него хотят. Надо как-то сообщить, ввод каких данных ожидает программа. С этой целью функция input() может принимать необязательный аргумент-приглашение строкового типа; при выполнении функции сообщение будет появляться на экране и информировать человека о запрашиваемых данных.

>>> input("Введите номер карты: ")
Введите номер карты: 98765
'98765'
>>> input('Input your name: ')
Input your name: Sasha
'Sasha'
>>> 
Из примеров видно, что данные возвращаются в виде строки, даже если было введено число. В более ранних версиях Python были две встроенные функции, позволяющие получать данные с клавиатуры: raw_input(), возвращающая в программу строку и input(), возвращающая число. Начиная с версии Python 3.0, если требуется получить число, то результат выполнения функции input() изменяют с помощью функций int() или float().

>>> input('Введите число: ')
Введите число: 10
'10'
>>> int(input('Введите число: '))
Введите число: 10
10
>>> float(input('Введите число: '))
Введите число: 10
10.0
>>> 
Результат, возвращаемый функцией input(), обычно присваивают переменной для дальнейшего использования в программе.

>>> userName = input('What is your name? ')
What is your name? Masha
>>> exp = input('3*34 = ')
3*34 = 102
>>> exp = int(exp) + 21
>>> userName
'Masha'
>>> exp
123
>>> 

Практическая работа

1. Создайте скрипт (файл data.py), который бы запрашивал у пользователя
- его имя: "What is your name?"
- возраст: "How old are you?"
- место жительства: "Where are you live?"
, а затем выводил три строки
- "This is имя"
- "It is возраст"
- "He live in место_жительства"
, где вместо имя, возраст, место_жительства должны быть соответствующие данные, введенные пользователем.
2. Напишите программу (файл example.py), которая предлагала бы пользователю решить пример 4*100-54. Если пользователь напишет правильный ответ, то получит поздравление от программы, иначе – программа сообщит ему об ошибке. (При решении задачи используйте конструкцию if-else.)
3. Перепишите предыдущую программу так, чтобы пользователю предлагалось решать пример до тех пор, пока он не напишет правильный ответ. (При решении задачи используйте цикл while.)