Язык программирования Python - [4]
Смешивать вместе формы >try–except
и >try–finally
нельзя.
Встроенные типы данных
Как уже говорилось, все данные в Python представлены объектами. Имена являются лишь ссылками на эти объекты и не несут нагрузки по декларации типа. Значения встроенных типов имеют специальную поддержку в синтаксисе языка: можно записать литерал строки, числа, списка, кортежа, словаря (и их разновидностей). Синтаксическую же поддержку операций над встроенными типами можно легко сделать доступной и для объектов определяемых пользователей классов.
Следует также отметить, что объекты могут быть неизменчивыми и изменчивыми. Например, строки в Python являются неизменчивыми, поэтому операции над строками создают новые строки.
Карта встроенных типов (с именами функций для приведения к нужному типу и именами классов для наследования от этих типов):
• специальные типы: >None
, >NotImplemented
и >Ellipsis
;
• числа;
○ целые
• обычное целое >int
• целое произвольной точности >long
• логический >bool
○ число с плавающей точкой >float
○ комплексное число >complex
• последовательности;
○ неизменчивые:
• строка >str
;
• Unicode–строка >unicode
;
• кортеж >tuple
;
○ изменчивые:
• список >list
;
• отображения:
○ словарь >dict
• объекты, которые можно вызвать:
○ функции (пользовательские и встроенные);
○ функции–генераторы;
○ методы (пользовательские и встроенные);
○ классы (новые и «классические»);
○ экземпляры классов (если имеют метод >__call__
);
• модули;
• классы (см. выше);
• экземпляры классов (см. выше);
• файлы file;
• вспомогательные типы >buffer
, >slice
.
Узнать тип любого объекта можно с помощью встроенной функции >type()
.
Тип int и long
Два типа: >int
(целые числа) и >long
(целые произвольной точности) служат моделью для представления целых чисел. Первый соответствует типу >long
в компиляторе C для используемой архитектуры. Числовые литералы можно записать в системах счисления с основанием 8, 10 или 16:
># В этих литералах записано число 10
>print 10, 012, 0xA, 10L
Набор операций над числами — достаточно стандартный как по семантике, так и по обозначениям:
>>>> print 1 + 1, 3 — 2, 2*2, 7/4, 5%3
>2 1 4 1 2
>>>> print 2L ** 1000
>107150860718626732094842504906000181056140481170553360744375038
>837035105112493612249319837881569585812759467291755314682518714
>528569231404359845775746985748039345677748242309854210746050623
>711418779541821530464749835819412673987675591655439460770629145
>71196477686542167660429831652624386837205668069376
>>>> print 3 < 4 < 6, 3 >= 5, 4 == 4, 4 != 4 # сравнения
>True False True False
>>>> print 1 << 8, 4 >> 2, ~4 # побитовые сдвиги и инверсия
>256 1–5
>>>> for i, j in (0, 0), (0, 1), (1, 0), (1, 1):
>... print i, j, ":", i & j, i | j, i ^ j # побитовые операции
>...
>0 0 : 0 0 0
>0 1 : 0 1 1
>1 0 : 0 1 1
>1 1 : 1 1 0
Значения типа >int
должны покрывать диапазон от–2147483648 до 2147483647, а точность целых произвольной точности зависит от объема доступной памяти.
Стоит заметить, что если в результате операции получается значение, выходящее за рамки допустимого, тип >int
может быть неявно преобразован в >long
:
>>>> type(-2147483648)
>
>>>> type(-2147483649)
>
Также нужно быть осторожным при записи констант. Нули в начале числа — признак восьмеричной системы счисления, в которой нет цифры 8:
>>>> 008
> File "
> 008
> ^
>SyntaxError: invalid token
Тип float
Соответствует C–типу >double
для используемой архитектуры. Записывается вполне традиционным способом либо через точку, либо в нотации с экспонентой:
>>>> pi = 3.1415926535897931
>>>> pi ** 40
>7.6912142205156999e+19
Кроме арифметических операций, можно использовать операции из модуля >math
.
Для финансовых расчетов лучше применять более подходящий тип.
Из полезных встроенных функций можно вспомнить >round()
, >abs()
.
Тип complex
Литерал мнимой части задается добавлением >j
в качестве суффикса (перемножаются мнимые единицы):
>>>> -1j * -1j
>(-1–0j)
Тип реализован на базе вещественного. Кроме арифметических операций, можно использовать операции из модуля >cmath
.
Тип bool
Подтип целочисленного типа для «канонического» обозначения логических величин. Два значения: >True
(истина) и >False
(ложь) — вот и все, что принадлежит этому типу. Как уже говорилось, любой объект Python имеет истинностное значение, логические операции можно проиллюстрировать с помощью логического типа:
>>>> for i in (False, True):
>... for j in (False, True):
>... print i, j, ":", i and j, i or j, not i
>...
>...
>False False : False False True
>False True : False True True
>True False : False True False
>True True : True True False
Следует отметить, что Python даже не вычисляет второй операнд операции >and
или >or
, если ее исход ясен по первому операнду. Таким образом, если первый операнд истинен, он и возвращается как результат >or
, в противном случае возвращается второй операнд. Для операции >and
все аналогично.
Тип string и тип unicode
В Python строки бывают двух типов: обычные и Unicode–строки. Фактически строка — это последовательность символов (в случае обычных строк можно сказать «последовательность байтов»). Строки–константы можно задать в программе с помощью строковых литералов. Для литералов наравне используются как апострофы (

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

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

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

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

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

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