Работа с PyCalc

rabota s pycalc Текст и язык

Как обычно, сначала рассмотрим графический интерфейс, а потом уже программный код. Запустить программу PyCalc можно из панелей запуска PyGadgets и PyDemos, находящихся в корневом каталоге дерева примеров, либо непосредственно, как файл calculator.py, листинг которого приведен ниже (например, щелкнуть на нем в менеджере файлов). На рис. 19.4 показано главное окно программы PyCalc. По умолчанию кнопки операндов окрашены в голубой цвет и имеют надписи черного цвета (а кнопки операторов — наоборот), но при этом параметры шрифта и цвета можно передать в метод конструктора класса графического интерфейса. Конечно, на черно-белых рисунках в книге этого не видно, поэтому просто запустите PyCalc у себя, чтобы понять, что я имею в виду.

Рис. 19.4. Калькулятор PyCalc в Windows 7

 

Если запустить программу PyCalc, можно заметить, что она реализует обычную модель калькулятора — выражения вычисляются во время ввода, а не полностью, в конце. То есть части выражений вычисляются и отображаются, как только это становится возможным с учетом старшинства операторов и расставленных вручную скобок. Например, на рис. 19.4 изображен результат, полученный нажатием кнопки 2 и последующих нескольких нажатий кнопки *, с целью получить последовательность степеней двойки. Как действует это вычисление, я объясню через минуту.

Класс CalcGui в программе PyCalc конструирует графический интерфейс из фреймов с кнопками, подобно простому калькулятору из предыдущего раздела, но в PyCalc добавляется множество новых функций. Среди них еще один ряд командных кнопок, унаследованные от GuiMixin методы (представленные в главе 10), новая кнопка cmd (команда), выводящая немодальные диалоги для ввода произвольного программного кода на языке Python, и всплывающее окно с историей предыдущих вычислений. На рис. 19.5 показаны некоторые всплывающие окна PyCalc.

Рис. 19.5. Калькулятор PyCalc с несколькими всплывающими окнами

 

Вводить выражения в PyCalc можно щелчками на кнопках в графическом интерфейсе, вводя выражения целиком во всплывающих окнах командной строки или нажатием клавиш на клавиатуре. Программа PyCalc перехватывает события нажатий клавиш и интерпретирует их так же, как нажатия соответствующих кнопок; ввод символа «+» аналогичен нажатию кнопки +, клавиша пробела соответствует кнопке clear (очистить), клавиша Enter соответствует кнопке eval (вычислить), клавиша забоя (backspace) удаляет символ, а ввод символа «?» аналогичен нажатию кнопки help (справка).

Диалоги для ввода произвольного программного кода являются немодальными (их можно вывести в любом количестве). Они принимают любой программный код на языке Python — чтобы выполнить программный код в поле ввода, необходимо щелкнуть на кнопке Run (Запустить) или нажать клавишу Enter. Результат выполнения этого программного кода в пространстве имен калькулятора, определяемом словарем, помещается в главное окно и может использоваться в более крупных выражениях. Этим механизмом можно пользоваться, чтобы избежать необходимости применения внешних инструментов в расчетах. Например, в этих диалогах можно импортировать и использовать функции, написанные на Python или C. Текущее значение в главном окне калькулятора записывается также в поля ввода вновь открываемых диалогов для использования во вводимых выражениях.

Программа PyCalc поддерживает целые числа (неограниченной точности), отрицательные числа и числа с плавающей точкой просто потому, что они поддерживаются языком Python. Отдельные операнды и выражения по-прежнему вычисляются вызовом встроенной функции eval, которая вызывает анализатор/интерпретатор Python на этапе исполнения. Имеется возможность присваивать значения переменным и обращаться к ним в главном окне с помощью кнопок с буквами, = и eval (вычислить). Присвоение выполняется в пространстве имен калькулятора (более сложные имена переменных можно вводить в диалогах ввода программного кода). Посмотрите в окне с историей вычислений, как используется переменная pi: программа PyCalc заранее импортирует имена из модулей math и random в пространство имен, в котором вычисляются выражения.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий