Язык программирования Python - [12]

Шрифт
Интервал

>exit([c])Выход из программы. Можно передать числовой код завершения: 0 в случае успешного завершения, другие числа при аварийном завершении программы.
>argvСписок аргументов командной строки. Обычно >sys.argv[0] содержит имя запущенной программы, а остальные параметры передаются из командной строки.
>platformПлатформа, на которой работает интерпретатор.
>stdin, >stdout, >stderrСтандартный ввод, вывод, вывод ошибок. Открытые файловые объекты.
>versionВерсия интерпретатора.
>setrecursionlimit(limit)Установка уровня максимальной вложенности рекурсивных вызовов.
>exc_info()Информация об обрабатываемом исключении.
Модуль copy

Этот модуль содержит функции для копирования объектов. Вначале предлагается к рассмотрению «парадокс», который вводит в замешательство новичков в Python:

>lst1 = [0, 0, 0]

>lst = [lst1] * 3

>print lst

>lst[0][1] = 1

>print lst

В результате получается, возможно, не то, что ожидалось:

>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

>[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

Дело в том, что список >lst содержит ссылки на один и тот же список! Для того чтобы действительно размножить список, необходимо применить функцию >copy() из модуля >copy:

>from copy import copy

>lst1 = [0, 0, 0]

>lst = [copy(lst1) for i in range(3)]

>print lst

>lst[0][1] = 1

>print lst

Теперь результат тот, который ожидался:

>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

>[[0, 1, 0], [0, 0, 0], [0, 0, 0]]

В модуле >copy есть еще и функция >deepcopy() для глубокого копирования, при которой объекты копируются на всю возможную глубину, рекурсивно.

Модули math и cmath

В этих модулях собраны математические функции для действительных и комплексных аргументов. Это те же функции, что используются в языке C. В таблице ниже даны функции модуля >math. Там, где аргумент обозначен буквой >z, аналогичная функция определена и в модуле >cmath.

Функция или константаОписание
>acos(z)арккосинус >z
>asin(z)арксинус >z
>atan(z)арктангенс >z
>atan2(y,x)>atan(y/x)
>ceil(x)наименьшее целое, большее или равное >x
>cos(z)косинус >z
>cosh(x)гиперболический косинус >x
>eконстанта >e
>exp(z)экспонента (то есть, >e**z)
>fabs(x)абсолютное значение >x
>floor(x)наибольшее целое, меньшее или равное >x
>fmod(x,y)остаток от деления >x на >y
>frexp(x)возвращает мантиссу и порядок >x как пару >(m, i), где >m — число с плавающей точкой, а >i — целое, такое, что >x = m * 2.**i. Если >0, возвращает >(0,0), иначе >0.5 <= abs(m) < 1.0
>hypot(x,y)>sqrt(x*x + y*y)
>ldexp(m,i)>m * (2**i)
>log(z)натуральный логарифм >z
>log10(z)десятичный логарифм >z
>modf(x)возвращает пару >(y,q) — целую и дробную часть >x. Обе части имеют знак исходного числа
>piконстанта π
>pow(x,y)>x**y
>sin(z)синус >z
>sinh(z)гиперболический синус >z
>sqrt(z)корень квадратный от >z
>tan(z)тангенс >z
>tanh(z)гиперболический тангенс >z
Модуль random

Этот модуль генерирует псевдослучайные числа для нескольких различных распределений. Наиболее используемые функции:

>random()Генерирует псевдослучайное число из полуоткрытого диапазона >[0.0, 1.0).
>choice(s)Выбирает случайный элемент из последовательности >s.
>shuffle(s)Размешивает элементы изменчивой последовательности >s на месте.
>randrange([start,] stop[, step])Выдает случайное целое число из диапазона >range(start, stop, step). Аналогично >choice(range(start, stop, step)).
>normalvariate(mu, sigma)Выдает число из последовательности нормально распределенных псевдослучайных чисел. Здесь >mu — среднее, >sigma — среднеквадратическое отклонение (>sigma > 0)

Остальные функции и их параметры можно уточнить по документации. Следует отметить, что в модуле есть функция >seed(n), которая позволяет установить генератор случайных чисел в некоторое состояние. Например, если возникнет необходимость многократного использования одной и той же последовательности псевдослучайных чисел.

Модуль time

Этот модуль дает функции для получения текущего времени и преобразования форматов времени.

Модуль sets

Модуль реализует тип данных для множеств. Следующий пример показывает, как использовать этот модуль. Следует заметить, что в Python 2.4 и старше тип >set стал встроенным, и вместо >sets.Set можно использовать >set:

>import sets

>A = sets.Set([1, 2, 3])

>B = sets.Set([2, 3, 4])

>print A | B, A & B, A — B, A ^ B

>for i in A:

> if i in B:

>  print i,

В результате будет выведено:

>Set([1, 2, 3, 4]) Set([2, 3]) Set([1]) Set([1, 4])

>2 3

Модули array и struct

Эти модули реализуют низкоуровневый массив и структуру данных. Основное их назначение — разбор двоичных форматов данных.

Модуль itertools

Этот модуль содержит набор функций для работы с итераторами. Итераторы позволяют работать с данными последовательно, как если бы они получались в цикле. Альтернативный подход — использование списков для хранения промежуточных результатов — требует подчас большого количества памяти, тогда как использование итераторов позволяет получать значения на момент, когда они действительно требуются для дальнейших вычислений. Итераторы будут рассмотрены более подробно в лекции по функциональному программированию.

Модуль locale

Модуль locale применяется для работы с культурной средой. В конкретной культурной среде могут использоваться свои правила для написания чисел, валют, времени и даты и т.п. Следующий пример выводит дату сначала в культурной среде «C», а затем на русском языке:


Рекомендуем почитать
Изучаем Java EE 7

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


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

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


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.