Язык программирования Python - [3]
>True
.Литералы >True
и >False
для обозначения логических значений появились в Python 2.3.
Цикл ДЛЯ выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения:
>for i in range(1, 10):
> for j in range(1, 10):
> print "%2i" % (i*j),
> print
Здесь циклы >for
являются вложенными. Функция >range()
порождает список целых чисел из полуоткрытого диапазона >[1, 10)
. Перед каждой итерацией счетчик цикла получает очередное значение из этого списка. Полуоткрытые диапазоны общеприняты в Python. Считается, что их использование более удобно и вызывает меньше программистских ошибок. Например, >range(len(s))
порождает список индексов для списка >s
(в Python–последовательности первый элемент имеет индекс >0
). Для красивого вывода таблицы умножения применена операция форматирования >%
(для целых чисел тот же символ используется для обозначения операции взятия остатка от деления). Строка форматирования (задается слева) строится почти как строка форматирования для >printf
из C.
Функции
Программист может определять собственные функции двумя способами: с помощью оператора >def
или прямо в выражении, посредством >lambda
. Второй способ (да и вообще работа с функциями) будет рассмотрен подробнее в лекции по функциональному программированию на Python, а здесь следует привести пример определения и вызова функции:
>def cena(rub, kop=0):
> return "%i руб. %i коп." % (rub, kop)
>print cena(8, 50)
>print cena(7)
>print cena(rub=23, kop=70)
В этом примере определена функция двух аргументов (из которых второй имеет значение по умолчанию — >0
). Вариантов вызова этой функции с конкретными параметрами также несколько. Стоит только заметить, что при вызове функции сначала должны идти позиционные параметры, а затем, именованные. Аргументы со значениями по умолчанию должны следовать после обычных аргументов. Оператор >return
возвращает значение функции. Из функции можно возвратить только один объект , но он может быть кортежем из нескольких объектов.
После оператора >def
имя >cena
оказывается связанным с функциональным объектом.
Исключения
В современных программах передача управления происходит не всегда так гладко, как в описанных выше конструкциях. Для обработки особых ситуаций (таких как деление на ноль или попытка чтения из несуществующего файла) применяется механизм исключений. Лучше всего пояснить синтаксис оператора >try–except
следующим примером:
>try:
> res = int(open('a.txt').read())/int(open('c.txt').read())
> print res
>except IOError:
> print "Ошибка ввода–вывода"
>except ZeroDivisionError:
> print "Деление на 0"
>except KeyboardInterrupt:
> print "Прерывание с клавиатуры"
>except:
> print "Ошибка"
В этом примере берутся числа из двух файлов и делятся одно на другое. В результате этих нехитрых действий может возникнуть несколько исключительных ситуаций, некоторые из них отмечены в частях >except
(здесь использованы стандартные встроенные исключения Python). Последняя часть >except
в этом примере улавливает все другие исключения, которые не были пойманы выше. Например, если хотя бы в одном из файлов находится нечисловое значение, функция >int()
возбудит исключение >ValueError
. Его–то и сможет отловить последняя часть >except
. Разумеется, выполнение части >try
в случае возникновения ошибки уже не продолжается после выполнения одной из частей >except
.
В отличие от других языков программирования, в Python исключения нередко служат для упрощения алгоритмов. Записывая оператор >try–except
, программист может думать так: «попробую, а если сорвется — выполнится код в >except
». Особенно часто это используется для выражений, в которых значение получается по ключу из отображения:
>try:
> value = dict[key]
>except:
> value = default_value
Вместо
>if dict.has_key(key):
> value = dict[key]
>else:
> value = default_value
Пример уже несколько устаревшей идиомы языка Python иллюстрирует только дух этого подхода: в современном Python лучше записать так >value = dict.get(key, default_value)
.
Исключения можно возбуждать и из программы. Для этого служит оператор >raise
. Заодно следующий пример показывает канонический способ определения собственного исключения:
>class MyError(Exception):
> pass
>try:
> ...
> raise MyError, "my error 1"
> ...
>except MyError, x:
> print "Ошибка:", x
Кстати, все исключения выстроены в иерархию классов, поэтому >ZeroDivisionError
может быть поймана как >ArithmeticError
, если соответствующая часть >except
будет идти раньше.
Для утверждений применяется специальный оператор >assert
. Он возбуждает >AssertionError
, если заданное в нем условие неверно. Этот оператор используют для самопроверки программы. В оптимизированном коде он не выполняется, поэтому строить на нем логику алгоритма нельзя. Пример:
>c = a + b
>assert c == a + b
Кроме описанной формы оператора, есть еще форма >try–finally
для гарантированного выполнения некоторых действий при передаче управления изнутри оператора >try–finally
вовне. Он может применяться для освобождения занятых ресурсов, что требует обязательного выполнения, независимо от произошедших внутри катаклизмов:
>try:
> ...
>finally:
> print "Обработка гарантированно завершена"

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)

Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн – это симулятор мечты, набор правил, благодаря которым игра оживает. Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира! Создайте игровую механику, вызывающую эмоции и обеспечивающую разнообразие.

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

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

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

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.