В сегодняшнем уроке мы начнем знакомиться с интерактивными возможностями языка Python. То есть с такими возможностями, которые позволяют задействовать пользователя в программу.
Например, мы спрашиваем у пользователя, где он живет. Он вводит: «Москва». Затем спрашиваем, в каком районе – он отвечает «Сокольники» и т.д. Затем эти ответы используются для дальнейшей работы программы. Например, программа выдает номер почтового отделения, которое обслуживает дом, где живет пользователь.
Для начала немного вводных данных.
Поскольку мы печатаем на кириллице, в каждой программе мы должны вставлять вот такой текст:
import codecs, sys outf = codecs.getwriter('cp866')(sys.stdout, errors='replace') sys.stdout = outf
Сам запрос программы для вовлечения пользователя пишется так: raw_input()
Эту команду надо зазубрить!
Практический пример
Я дам два варианта практического примера, которые выдают одинаковый результат. Первый вариант – нам более понятен, так как мы уже изучили его составные части. Второй вариант – новый, и его просто надо заучить. Но он легче в программировании, так как каждый вопрос пользователю помещается не в 2 строки кода, а в одну.
Вариант 1.
Создаем на рабочем столе файл test11.py
Не забываем про кодировку файла. Пишем в него руками следующий программный код:
# -*- coding: utf- 8 -*- # Загружаем кодеки для возможности ввода/вывода кириллических символов import codecs, sys outf = codecs.getwriter('cp866')(sys.stdout, errors='replace') sys.stdout = outf print u"Сколько игроков в команде?", igroki = raw_input() print u"Сколько команд участвует в финале?", komandy = raw_input() print u"Сколько запасных игроков в каждой команде?", zapas = raw_input() print u"На финал приедет %s команд. В каждой команде по %s основных и по %s запасных игроков." % (komandy, igroki, zapas)
Теперь открываем программу PowerShell и прописываем команду python desktop/test11.py
У вас должно получиться следующее:
Вариант 2.
Создаем файл test12.py
Пишем в него следующий программный код:
# -*- coding: utf- 8 -*- # Загружаем кодеки для возможности ввода/вывода кириллических символов import codecs, sys outf = codecs.getwriter('cp866')(sys.stdout, errors='replace') sys.stdout = outf igroki = raw_input(u"Сколько игроков в команде? ") komandy = raw_input(u"Сколько команд участвует в финале? ") zapas = raw_input(u"Сколько запасных игроков в каждой команде? ") print u"На финал приедет %s команд. В каждой команде по %s основных и по %s запасных игроков." % (komandy, igroki, zapas)
Теперь открываем программу PowerShell и прописываем команду python desktop/test12.py
У вас должно получиться следующее:
Как мы видим, программа каждый раз останавливается и спрашивает нас и ждет, когда мы введем то или иное число. И только после нашего нажатия на Enter
программа продолжает работать.
Домашнее задание
Напишите программный код по аналогии с моим, вводя другой сценарий. Попробуйте также 2 варианта – сначала один, потом второй.
Более сложный вариант интерактивной программы на Питоне (с использованием переменной argv) - здесь.
А в следующем уроке мы познакомимся с таким понятием, как модули в Python 2.7 - перейти в урок 17.