В сегодняшнем уроке мы попробуем соединить функцию raw_input и переменную argv . Это может нам пригодиться в дальнейшем при составлении более сложных программ, например, как здесь: https://python-ucheba.ru/samouchitel-python/30-urok-19-chtenie-soderzhimogo-fajla-v-pitone-2-7-vvedenie. Напомню, что более простой вариант интерактивного сценария на Питоне - ЗДЕСЬ.
В данном упражнении мы будем использовать функцию raw_input для вывода приглашения на ввод текста пользователем программы.

Практический пример

Создаем на рабочем столе файл test14.py Пишем в него руками следующий программный код:

# -*- coding: utf- 8 -*-

import codecs, sys
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf

Не забываем, что это код нужен нам для адекватного отображения кириллического текста в программе.

Вводим далее:

from sys import argv

script, user_name = argv
prompt = '> ' 

 
Этим кодом мы распаковываем переменную argv и задаем ей значения названия данного скрипта script (в данном случае – test14.py) и имени пользователя на латинице (в данном случае – Sergey), которые мы введем в самом начале в программе PowerShell.
Командой prompt = '> ' мы выводим приглашение пользователю ввести какую-либо информацию на запрос программы. И пока пользователь не введет информацию и не нажмет клавишу Enter, программа не будет дальше работать.


Далее прописываем следующий код:

print u"Добрый день %s, вы находитесь в программе %r." % (user_name, script)
print u"Ответьте, пожалуйста, на следующие вопросы."
print u"Ты хочешь быть программистом, %s?" % user_name
prog_zhelan = raw_input(prompt).decode(sys.stdin.encoding or locale.getpreferredencoding(True))

print u"Знаешь ли ты язык Python, %s?" % user_name
prog_znan = raw_input(prompt).decode(sys.stdin.encoding or locale.getpreferredencoding(True))

print u"Какой у тебя уровень знаний?"
prog_uroven = raw_input(prompt).decode(sys.stdin.encoding or locale.getpreferredencoding(True))

print u"""
Таким образом, ты ответил %s на вопрос, хочешь ли ты быть программистом.
Ты ответил %s на вопрос, знаешь ли ты язык Python.
И у тебя %s уровень знаний. Отлично!
""" % (prog_zhelan, prog_znan, prog_uroven)

То есть каждый раз программа будет спрашивать пользователя «Ты хочешь быть программистом?», «Знаешь ли ты язык Python?» и т.д. и присваивает эти значения определенным переменным. А потом при выводе готового текста программа выводит значения этих переменных согласно прописанному коду: % (prog_zhelan, prog_znan, prog_uroven)

Напоминаю, что в коде мы прописали управляющую последовательность тройные кавычки. Более подробно об этом ЗДЕСЬ и ЗДЕСЬ


Теперь открываем программу PowerShell и прописываем команду:
python desktop/test14.py Sergey
Затем отвечаем на вопросы программы. При этом ответы можно писать на кириллице – мы ведь в программе ввели соответствующий код, который нормально обрабатывает кириллические символы.

В итоге у вас должно получиться следующее:

 


Домашнее задание

Попрактикуйтесь в написании программы, заменяя переменные другими названиями, введя в сценарий программы еще одну переменную, соответственно добавив ее один вопрос в приглашение командной строки.

А в следующем уроке мы научимся читать содержимое файлов в Python 2.7 - перейти в урок 19.