В сегодняшнем уроке мы начнем знакомиться с интерактивными возможностями языка 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