ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 735
Скачиваний: 16
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
85
При желании можно задать стилевые опции для всех виджетов сразу с помощью метода tk_setPalette(). Помимо использованных выше свойств, с помощью данного метода можно включить selectForeground() и selectBackground (передний план и фон выде- ления), selectColor (цвет в выбранном состоянии, например у Checkbutton()), insertBackground (цвет точки вставки) и некоторые другие.
Пример оформления графика в пакете Tkinter:
# -*- coding: utf-8 -*- from Tkinter import * from bsc_groups import * from math import*
##=====Function def f(x): return x**2*sin(x)
##=====Calculating bl=Bl('x','y') x=-0.5 xk=2.0*pi dx=0.01 while x<=xk: y=f(x) bl.add(x=x,y=y) x+=dx
##=====Labels crl=["red","black","#0DF","#C06","#A64","#AC3"] bg='White'
Lbd =[Bd(200,55,'Функция f=x**2*sin(x)',crl[0],bg)] tf= "y=[%6.3f %6.3f]" xmin= min(bl.L['y']) xmax= max(bl.L['y'])
Lbd+=[Bd(165,600,tf % (xmin, xmax),crl[0],bg)] xmin= min(bl.L['x']) xmax= max(bl.L['x'])
Lbd+=[Bd(165, 615,tf % (xmin, xmax),crl[1],bg)]
##=====Tkinter
A,B=500,700 tk=Tk()
86 tk.title('График функции') fr=Frame(tk) fr.pack() c=Canvas(fr,bg=bg,width=A,height=B) c.pack(expand=1,fill=BOTH)
#=====Output
Lx= bl.L['x']
Ly= bl.L['y'] desine_l(60,130,400,400,bg,crl,Lx,[Ly],0,50,50,c) for ibd in Lbd: ibd.show(c) tk.mainloop()
24. ИЕРАРХИЯ СТАНДАРТНЫХ ИСКЛЮЧЕНИЙ
Язык Python поддерживает много встроенных исключений. Все эти исключения входят в состав модуляexceptions,который всегда загружается автоматически перед выполнением любой программы.
Все исключения происходят от базового классаexception, исключе- ниеimporterrorявляется подклассом классаstandarderror,который, в свою очередь, является подклассом классаexception.
Exception. Базовый класс. Все классы исключений являются его подклассами. От этого класса должны также происходить все классы исключений, определяемых пользователем.
SystemExit. Исключение в чистом виде, поскольку в действи- тельности оно не связано с появлением ошибок. Оно применяется для выхода из программы. Важно отметить, что это исключение не воз- вращает сообщений обратной трассировки.
StandardError. Базовый класс для всех ошибок (безусловно, кроме SystemExit).
Keyboardlnterrupt. Исключение активизируется при нажатии клавиши прерывания, например при использовании комбинации кла- виш
ImportError. Активизируется, если интерпретатор Pythonне может найти импортируемый модуль.
EnvironmentError. Базовый класс для ошибок, возникающих вне среды Python. Классы
IOЕrror и OSError являются его подклас- сами.
IOЕrrоr. Исключение активизируется в результате возникнове- ния ошибок при выполнении операций ввода/вывода.
87
OSError. Исключение активизируется при получении сооб- щений об ошибках от операционной системы, обычно связанных с применением модуляos.
EOFError. Исключение активизируется при получении сооб- щения о достижении конца файла(EOF – End-of-File).
RuntimeError. Исключение особого типа, которое активизиру- ется в результате ошибок, не относящихся ни к одному из прочих исключений.
NotImplementedError. Исключение активизируется при попытках вызова методов или функции, не реализованных в интер- претаторе.
>>> def updateregistry():
>>> raise NotImplementedError
NameError. Исключение активизируется, если интерпретатор обнаруживает в программе имя, не принадлежащее ни к локальному, ни к глобальному пространству имен.
UnboundLocalError. Новое исключение, которое было разра- ботано для версии 1.6. Оно является подклассом исключения
NameErrorи вызывает ошибку, если не определена локальная пере- менная, применяемая в программе.
AttributeError. Исключение активизируется при ошибках, свя- занных со ссылкой на атрибут и присваиванием атрибута. Обратите внимание, что, начиная с версии 1.6, это исключение имеет более дружественное сообщение об ошибке, которое может нарушить рабо- ту кода, разработанного в предположении, что сообщение будет эк- вивалентно имени атрибута.
SyntaxError. Активизируется при синтаксических ошибках.
ТуреЕrrоr. Исключение активизируется при попытке приме- нить функциональную операцию к объекту, тип которого не соответ- ствует этой операции.
AssertionError. Исключение активизируется оператором
assert, если результат вычисления указанного в нем выражения явля- ется ложным.
LookupError. Базовый класс ошибок, связанных доступом по индексу и ключу. Его подклассами являются классыIndexError и
KeyError.
88
IndexError. Исключение активизируется при возникновении ошибок, связанных с выходом индекса за пределы последовательно- сти.
KeyError. Исключение активизируется, если ключ не найден в словаре.
ArithmeticError. Базовый класс для арифметических ошибок.
Его подклассами являются классыOverflowError, ZeroDivisionError и FloatingPointError.
OverflowError. Исключение активизируется, если полученный результат настолько велик, что приводит к арифметическому пере- полнению.
ZeroDivisionError. Исключение активизируется при попытке деления на нуль.
FloatingPointError. Исключение активизируется при ошибках выполнения операций с плавающей точкой. Обратите внимание, что в системе Linux для использования данного исключения необходимо разрешить обработку сигналаSIGFPE с применением модуляfpectl.
ValueError. Исключение активизируется при попытке выпол- нения операции над переменной с правильным типом, но с непра- вильным значением.
SystemError. Исключение активизируется при возникновении внутренней ошибки интерпретатора Python.
МеmогуЕrrоr. Исключение активизируется при возникновении неисправимой ошибки, связанной с нехваткой памяти. Поскольку классы исключений являются подклассами других классов исключе- ний (называемых базовыми классами), то существует возможность перехватывать ошибки/исключения сразу нескольких типов с исполь- зованием одной фразыexcept.Исключения базовых классов никогда не активизируются, но могут применяться для перехвата ошибок.
89
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.
Бизли Д. М. Язык программирования Python : справочник : пер. с англ. / Д. М. Бизли. – Киев : ДиаСофт, 2000.
2.
Гифт Н. Python в системном администрировании UNIX и
Linux : пер. с англ. / Н. Гифт, Д. Джонс. – СПб. : Символ-
Плюс, 2009.
3.
Лейнингем И. Освой самостоятельно Python за 24 часа : пер. с англ. / И. Лейнингем. – М. : Издательский дом «Вильямс»,
2001.
4.
Лесса А. Python. Руководство разработчика : пер. с англ. /
А. Лесса. – СПб. : ДиасофтЮП, 2001.
5.
Лутц М. Изучаем Python : пер. с англ. / М. Лутц. – СПб. :
Символ-Плюс, 2009.
6.
Лутц М. Программирование на Python : пер.с англ. / М. Лутц.
– СПб. : Символ-Плюс, 2002.
7.
Саммерфельд М. Программирование на Python 3. Подробное руководство : пер. с англ. / М. Саммерфельд. – СПб. : Сим- вол-Плюс, 2009.
8.
Сузи Р. А. Python / Р. А. Сузи. – СПб. : БХВ-Петербург, 2002.
9.
Сузи Р. А. Язык Python и его применения : учеб. пособие /
Р.А. Сузи. – М. : Интернет-Университет информационных технологий: БИНОМ. Лаборатория знаний, 2006.
10. Язык программирования Python / Г. Россум [и др.]. – СПб. :
АНО «Институт логики» – Невский диалект, 2001.
Учебное издание
Буйначев Сергей Константинович,
Боклаг Наталья Юрьевна
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON
Редактор И. В. Коршунова
Компьютерная верстка Е. В. Суховой
Подписано в печать 27.05.2014. Формат 60×90 1/16.
Бумага типографская. Плоская печать. Усл. печ. л. 5,75.
Уч.-изд. л. 5,0 Тираж 100 экз. Заказ № 1159.
Издательство Уральского университета
Редакционно-издательский отдел ИПЦ УрФУ
620049, Екатеринбург, ул. С. Ковалевской, 5
Тел.: 8 (343) 375-48-25, 375-46-85, 374-19-41
E-mail: rio@urfu.ru
Отпечатано в Издательско-полиграфическом центре УрФУ
620075, Екатеринбург, ул. Тургенева, 4
Тел.: 8 (343) 350-56-64, 350-90-13
Факс: 8 (343) 358-93-06
E-mail: press-urfu@mail.ru
Для заметок