Язык программирования Python (Сузи) - страница 23

>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])