Чтение онлайн

на главную - закладки

Жанры

Язык программирования Python
Шрифт:

Остальные функции и их параметры можно уточнить по документации. Следует отметить, что в модуле есть функция 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», а затем на русском языке:

Листинг

import time, locale

locale.setlocale(locale.LC_ALL, None)

print time.strftime("%d %B %Y», time.localtime (time.time))

locale.setlocale(locale.LC_ALL, «ru_RU.KOI8–R»)

print time.strftime("%d %B %Y», time.localtime (time.time))

В результате:

Листинг

18 November 2004

18 Ноября 2004

Модуль gettext

При интернационализации программы важно не только предусмотреть возможность использования нескольких культурных сред, но и перевод сообщений и меню программы на соответствующий язык. Модуль gettext позволяет упростить этот процесс достаточно стандартным способом. Основные сообщения программы пишутся на английском языке. А переводы строк, отмеченных в программе специальным образом, даются в виде отдельных файлов, по одному на каждый язык (или культурную среду). Уточнить нюансы использования gettext можно по документации к Python.

Поддержка цикла разработки

Модули этого раздела помогают поддерживать документацию, производить регрессионное тестирование, отлаживать и профилировать программы на Python, а также обслуживают распространение готовых программ, создавая среду для конфигурирования и установки пакетов.

В качестве

иллюстрации можно предположить, что создается модуль для вычисления простых чисел по алгоритму «решето Эратосфена». Модуль будет находиться в файле Sieve.py и состоять из одной функции primes(N), которая в результате своей работы дает все простые (не имеющие натуральных делителей кроме себя и единицы) числа от 2 до N:

Листинг

import sets

import math

""«Модуль для вычисления простых чисел от 2 до N """

def primes(N):

«"«Возвращает все простые от 2 до N»""

sieve = sets.Set(range(2, N))

for i in range(2, math.sqrt(N)):

if i in sieve:

sieve -= sets.Set(range(2*i, N, i))

return sieve

Модуль pdb

Модуль pdb предоставляет функции отладчика с интерфейсом — командной строкой. Сессия отладки вышеприведенного модуля могла бы быть такой:

Листинг

>>> import pdb

>>> pdb.runcall(Sieve.primes, 100)

> /home/rnd/workup/intuit–python/examples/Sieve.py(15)primes

— > sieve = sets.Set(range(2, N))

(Pdb) l

10 import sets

11 import math

12 ""«Модуль для вычисления простых чисел от 2 до N """

13 def primes(N):

14 ""«Возвращает все простые от 2 до N»""

15 -> sieve = sets.Set(range(2, N))

16 for i in range(2, int(math.sqrt(N))):

17 if i in sieve:

18 sieve -= sets.Set(range(2*i, N, i))

19 return sieve

20

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(16)primes

— > for i in range(2, int(math.sqrt(N))):

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(17)primes

— > if i in sieve:

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(18)primes

— > sieve -= sets.Set(range(2*i, N, i))

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(16)primes

— > for i in range(2, int(math.sqrt(N))):

(Pdb) p sieve

Set([2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,

41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,

81, 83, 85, 87, 89, 91, 93, 95, 97, 99])

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(17)primes

— > if i in sieve:

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(18)primes

— > sieve -= sets.Set(range(2*i, N, i))

(Pdb) n

> /home/rnd/workup/intuit–python/examples/Sieve.py(16)primes

— > for i in range(2, int(math.sqrt(N))):

(Pdb) p sieve

Set([2, 3, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49,

53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97])

Модуль profile

С помощью профайлера разработчики программного обеспечения могут узнать, сколько времени занимает исполнение различных функций и методов.

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь