В сегодняшнем уроке мы попробуем соединить функцию 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.