модуль числа на примерах с int и float, синтаксис функции
Встроенная функция abs(x) в Python возвращает абсолютное значение аргумента x, который может быть целым или числом с плавающей точкой, или же объектом, реализующим функцию __abs__(). Для комплексных чисел функция возвращает их величину. Абсолютное значение любого числового значения -x или +x — это всегда соответствующее положительное +x.
| Аргумент | x | целое число, число с плавающей точкой, комплексное число, объект, реализующий __abs__() |
| Возвращаемое значение | |x| | возвращает абсолютное значение входящего аргумента |
Пример abs() с целым числом
Следующий код демонстрирует, как получить абсолютное значение 42 положительного числа 42.
Копировать Скопировано Use a different Browser
x = 42 abs_x = abs(x) print(f"Абсолютное значение {x} это {abs_x}") # Вывод: Абсолютное значение 42 это 42
Вывод: «Абсолютное значение 42 это 42».
То же самое, но уже с отрицательным -42.
Копировать Скопировано Use a different Browser
x = -42 abs_x = abs(x) print(f"Абсолютное значение {x} это {abs_x}") # Вывод: Абсолютное значение -42 это 42
Пример с числом float
Вот как получить абсолютное значение 42.42 и для -42.42:
Копировать Скопировано Use a different Browser
x = 42.42 abs_x = abs(x) print(f"Абсолютное значение {x} это {abs_x}") # Абсолютное значение 42.42 это 42.42 x = -42.42 abs_x = abs(x) print(f"Абсолютное значение {x} это {abs_x}") # Абсолютное значение -42.42 это 42.42
Комплексное число
Абсолютное значение комплексного числа (3+10j).
Копировать Скопировано Use a different Browser
complex_number = (3+10j) abs_complex_number = abs(complex_number) print(f"Абсолютное значение {complex_number} это {abs_complex_number}") # Абсолютное значение (3+10j) это 10.44030650891055
abs() vs fabs()
abs(x) вычисляет абсолютное значение аргумента x.
По аналогии функция fabs(x) модуля math вычисляет то же значение. Разница лишь в том, что math.fabs(x) возвращает число с плавающей точкой, а abs(x) вернет целое число, если в качестве аргумента было целое число. Fabs расшифровывается как float absolute value.
Пример c fabs():
Копировать Скопировано Use a different Browser
x = 42 print(abs(x)) # 42 import math print(math.fabs(x)) # 42.0
abs() vs. np.abs()
И abs() в Python, и np.abs() в NumPy вычисляют абсолютное значение числа, но есть два отличия. np.abs(x) всегда возвращает число с плавающей точкой. Также np.abs(x) принимает массив NumPy, вычисляя значение для каждого элемента коллекции.
Пример:
Копировать Скопировано Use a different Browser
x = 42 print(abs(x)) # 42 import numpy as np print(np.fabs(x)) # 42.0 a = np.array([-1, 2, -4]) print(np.abs(a)) # [1 2 4]
abs и np.abs абсолютно идентичны. Нет разницы какой использовать. У первой преимущество лишь в том, что ее вызов короче.
Вывод
Функция abs() — это встроенная функция, возвращающая абсолютное значение числа. Она принимает целые, с плавающей точкой и комплексные числа на вход.
Если передать в abs() целое число или число с плавающей точкой, то функция вернет не-отрицательное значение n и сохранит тип. Для целого числа — целое число. Для числа с плавающей точкой — число с плавающей точкой.
Копировать Скопировано Use a different Browser
>>> abs(20) 20 >>> abs(20.0) 20.0 >>> abs(-20.0) 20.0
Комплексные числа состоят из двух частей и могут быть записаны в форме a + bj, где a и b — это или целые числа, или числа с плавающей точкой. Абсолютное значение a + bj вычисляется математически как math.sqrt(a**2 + b**2).
Копировать Скопировано Use a different Browser
>>> abs(3 + 4j) 5.0 >>> math.sqrt(3**2 + 4**2) 5.0
Таким образом, результат всегда положительный и всегда является числом с плавающей точкой.
Максим
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Python Q https://yandex.ru/q/loves/python Online
Python QCEO [email protected]://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=gCEO PythonruPythonАлександрРедакторhttps://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/[email protected] Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScriptФункция abs() в Python, абсолютное значение числа.
Функция abs() в Python, абсолютное значение числа.
Сообщить об ошибке.
Синтаксис:abs(x)Параметры:
x— число, может быть целым числом, числом с плавающей запятой или комплексным числом.
- абсолютное значение числа
x, переданного в качестве аргумента.
Функция abs() используется для возврата абсолютного значения числа.
abs() принимает только один аргумент, число, абсолютное значение которого должно быть возвращено. Аргумент может быть целым числом, числом с плавающей запятой или комплексным числом.
- Если аргумент представляет собой целое число или число с плавающей запятой,
abs()возвращает абсолютное значение в виде целого числа или числа с плавающей запятой. - В случае комплексного числа
abs()возвращает только часть величины, которая также может быть числом с плавающей запятой.
# Число с плавающей точкой (запятой)
>>> f = -54.26
>>> print('=>', abs(f))
# => 54.26
# Целое число
>>> i = -94
>>> print('=>', abs(i))
# => 94
# Комплексное число
>>> c = (3 - 4j)
>>> print('=>', abs(c))
# => 5.0
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Функция abs(), абсолютное значение числа.
- Функция all(), все элементы True.
- Функция any(), хотя бы один элемент True.
- Функция ascii(), преобразует строку в ASCII.
- Функция bin(), число в двоичную строку.
- Класс bool(), логическое значение объекта.
- Функция breakpoint(), отладчик кода.
- Класс bytearray(), преобразует в массив байтов.
- Класс bytes(), преобразует в строку байтов.
- Функция callable(), проверяет можно ли вызвать объект.
- Функция chr(), число в символ Юникода.
- Класс classmethod, делает функцию методом класса.

- Функция compile() компилирует блок кода Python.
- Класс complex(), преобразует в комплексное число.
- Функция delattr(), удаляет атрибут объекта.
- Класс dict() создает словарь.
- Функция dir(), все атрибуты объекта.
- Функция divmod(), делит числа с остатком.
- Функция enumerate(), счетчик элементов последовательности.
- Функция eval(), выполняет строку-выражение с кодом.
- Функция exec(), выполняет блок кода.
- Функция filter(), фильтрует список по условию.
- Класс float(), преобразует в вещественное число.
- Функция format(), форматирует значение переменной.
- Класс frozenset(), преобразует в неизменяемое множество.
- Функция getattr(), значение атрибута по имени.
- Функция globals(), переменные глобальной области.
- Функция hasattr(), наличие атрибута объекта.
- Функция hash(), хэш-значение объекта.
- Функция help(), справка по любому объекту.
- Функция hex(), число в шестнадцатеричную строку.

- Функция id(), идентификатор объекта.
- Функция input(), ввод данных с клавиатуры.
- Класс int(), преобразует в тип int.
- Функция isinstance(), принадлежность экземпляра к классу.
- Функция issubclass(), проверяет наследование класса.
- Функция iter(), создает итератор.
- Функция len(), количество элементов объекта.
- Класс list(), преобразовывает в список.
- Функция locals(), переменные локальной области.
- Функция map(), обработка последовательности без цикла.
- Функция max(), максимальное значение элемента.
- Класс memoryview(), ссылка на буфер обмена.
- Функция min(), минимальное значение элемента.
- Функция next(), следующий элемент итератора.
- Класс object(), возвращает безликий объект.
- Функция oct(), число в восьмеричную строку.
- Функция open(), открывает файл на чтение/запись.
- Функция ord(), число символа Unicode.
- Функция pow(), возводит число в степень.
- Функция print(), печатает объект.

- Класс property(), метод класса как свойство.
- Класс range(), генерирует арифметические последовательности.
- Функция repr(), описание объекта.
- Функция reversed(), разворачивает последовательность.
- Функция round(), округляет число.
- Класс set(), создает или преобразовывает в множество.
- Функция setattr(), создает атрибут объекта.
- Класс slice(), шаблон среза.
- Функция sorted(), выполняет сортировку.
- Декоратор staticmethod(), метод класса в статический метод.
- Класс str(), преобразует объект в строку.
- Функция sum(), сумма последовательности.
- Функция super(), доступ к унаследованным методам.
- Класс tuple(), создает или преобразует в кортеж.
- Класс type(), возвращает тип объекта.
- Функция vars(), словарь переменных объекта.
- Функция zip(), объединить элементы в список кортежей.
- Функция __import__(), находит и импортирует модуль.
- Функция aiter(), создает асинхронный итератор.

- Функция anext(), следующий элемент асинхронного итератора.
cmath — Математические функции для комплексных чисел — Документация по Python 3.11.1
Этот модуль обеспечивает доступ к математическим функциям для комплексных чисел.
функции в этом модуле принимают целые числа, числа с плавающей запятой или комплексные
числа в качестве аргументов. Они также будут принимать любой объект Python, который имеет либо __complex__() или метод __float__() : эти методы используются для
преобразовать объект в комплексное число или число с плавающей запятой, соответственно, и
затем функция применяется к результату преобразования.
Примечание
На платформах с аппаратной и системной поддержкой подписанных
нули, функции с ветвлениями непрерывны на и на стороны среза ветки: знак нуля отличает единицу
сторона ветки отрезана от другой. На платформах, которые не
поддерживают нули со знаком, непрерывность указана ниже.
Преобразование в полярные координаты и обратно
Комплексный номер Python z хранится внутри с использованием прямоугольника или декартовых координат. Он полностью определяется своим реальным
часть z.real и его мнимая часть z.imag . В других
слов:
z == z.real + z.imag*1j
Полярные координаты дают альтернативный способ представления комплекса
число. В полярных координатах комплексное число z определяется
модуль r и фазовый угол фи . Модуль r это расстояние
от z до начала координат, а фаза
Следующие функции можно использовать для преобразования из собственного прямоугольных координат в полярные координаты и обратно.
- cmath.
фаза( x ) Возвращает фазу x (также известную как аргумент из x ), как плавать.
фаза(х)эквивалентноmath.atan2(x.imag, х.реал). Результат лежит в диапазоне [- π , π ], а ветвь разрез для этой операции лежит вдоль отрицательной действительной оси, непрерывный сверху. В системах с поддержкой нулей со знаком (включая большинство используемых в настоящее время систем), это означает, что знак результата такой же, как знакx.imag, даже когдаx.imagравно нулю:>>> фаза (комплекс (-1.0, 0.0)) 3.141592653589793 >>> фаза (комплекс (-1.0, -0.0)) -3,141592653589793
Примечание
Модуль (абсолютное значение) комплексного числа x может быть
вычисляется с помощью встроенной функции abs() . Здесь нет
отдельная функция модуля cmath для этой операции.
- cmath.polar( x )
Вернуть представление x в полярных координатах.
Возвращает
пара (r, phi), где r — это модуль x , а phi — это фаза х .polar(x)эквивалентно(abs(x), фаза(х)).
- cmath.rect( r , фи )
Возвращает комплексное число x с полярными координатами r и phi . Эквивалентно
r * (math.cos(phi) + math.sin(phi)*1j).
Степенные и логарифмические функции
- cmath.exp( x )
Возврат e в степени x , где e основание натурального числа логарифмы.
- cmath.log( x [ база ])
Возвращает логарифм x по заданному основанию . Если база не указанный, возвращает натуральный логарифм x . Срезана одна ветка, от 0 вдоль отрицательной вещественной оси до -∞, непрерывно сверху.
- cmath.
log10( x ) Возвращает логарифм по основанию 10 числа x . У него такая же ветвь срезана, как
лог().
- cmath.sqrt( x )
Возвращает квадратный корень из x . Это имеет ту же ветку, что и
log().
Тригонометрические функции
- cmath.acos( x )
Возвращает арккосинус числа х . Есть два среза ветвей: один идет прямо от 1 вдоль вещественной оси до ∞, непрерывно снизу. Другой простирается влево от -1 вдоль вещественной оси до -∞, непрерывно сверху.
- cmath.asin( x )
Возвращает арксинус x . У него те же ветвления, что и у
acos().
- cmath.atan( x )
Возвращает арктангенс x . Есть два разреза ветвей: один проходит от
1jвдоль мнимой оси до∞j, непрерывно справа.
другой простирается от -1jвдоль мнимой оси до-∞j, непрерывный слева.
- cmath.cos( x )
Возвращает косинус x .
- cmath.sin( x )
Возврат синуса x .
- cmath.tan( x )
Возврат касательной x .
Гиперболические функции
- cmath.acosh( x )
Возвращает гиперболический арккосинус x . Там одна ветка срезана, идущий влево от 1 вдоль действительной оси до -∞, непрерывный сверху.
- cmath.asinh( x )
Возврат обратного гиперболического синуса x . Есть два разреза ветвей: Один простирается от
1jпо мнимой оси до∞j, непрерывно справа. Другой простирается от-1jвдоль мнимая ось до-∞j, непрерывная слева.
- cmath.atanh( x )
Возвращает гиперболический арктангенс x . Есть два разреза ветвей: один простирается от
1вдоль вещественной оси до∞, непрерывно снизу. другое простирается от-1по вещественной оси до-∞, непрерывно от выше.
- cmath.cosh( x )
Возвращает гиперболический косинус x .
- cmath.sinh( x )
Вернуть гиперболический синус x .
- cmath.tanh( x )
Вернуть гиперболический тангенс x .
Функции классификации
- cmath.isfinite( x )
Возврат
Истинно, если и действительная, и мнимая части x конечны, иFalseиначе.Новое в версии 3.2.
- cmath.
isinf( x ) Возврат
True, если действительная или мнимая часть x является бесконечность иFalseв противном случае.
- cmath.isnan( х )
Возврат
True, если действительная или мнимая часть x является NaN, иFalseв противном случае.
- cmath.isclose( a , b , * , rel_tol=1e-09 , abs_tol=0.0 )
Вернуть
True, если значения a и b близки друг к другу иFalseиначе.Считаются ли два значения близкими, определяется в соответствии с заданы абсолютные и относительные допуски.
rel_tol — относительный допуск — максимально допустимая разница между a и b относительно большего абсолютного значения a или b . Например, чтобы установить допуск 5%, введите
rel_tol=0.. По умолчанию допуск равен
05 1e-09, что гарантирует, что два значения совпадают. примерно с точностью до 9 знаков после запятой. rel_tol должен быть больше нуля.abs_tol — минимальный абсолютный допуск — полезно для сравнений вблизи нуль. abs_tol должен быть не меньше нуля.
Если ошибок нет, результат будет таким:
абс(а-б) <= макс(отн_допуск * макс(абс(а), абс(б)), абс_доп).Специальные значения IEEE 754
NaN,infи-infбудут обрабатывается в соответствии с правилами IEEE. В частности,NaNне считается близко к любому другому значению, включаяNaN.infи-infтолько считают близкими себе.Новое в версии 3.5.
См. также
PEP 485 — Функция проверки приблизительного равенства
Константы
- cmath.pi
Математическая константа π в виде числа с плавающей запятой.

- cmath.e
Математическая константа e в виде числа с плавающей запятой.
- cmath.tau
Математическая константа τ , как поплавок.
Новое в версии 3.6.
- cmath.inf
Положительная бесконечность с плавающей запятой. Эквивалентно
float('inf').Новое в версии 3.6.
- cmath.infj
Комплексное число с нулевой действительной частью и положительной бесконечностью мнимой часть. Эквивалентно
complex(0.0, float('inf')).Новое в версии 3.6.
- cmath.нан
Значение с плавающей запятой «не число» (NaN). Эквивалентно
поплавок('нан').Новое в версии 3.6.
- cmath.nanj
Комплексное число с нулевой действительной частью и NaN мнимой частью. Эквивалентно
комплекс(0..
0, число с плавающей запятой('нан')) Новое в версии 3.6.
Обратите внимание, что выбор функций подобен, но не идентичен выбору в
модуль математика . Причина наличия двух модулей в том, что некоторые пользователи не
интересуются комплексными числами и, возможно, даже не знают, что они собой представляют. Они
лучше бы math.sqrt(-1) вызывает исключение, чем возвращает комплекс
число. Также обратите внимание, что функции, определенные в cmath , всегда возвращают
комплексное число, даже если ответ может быть выражен действительным числом (в котором
если комплексное число имеет мнимую часть нуля).
Замечание о ветвях: это кривые, вдоль которых данная функция не работает.
быть непрерывным. Они являются необходимым элементом многих сложных функций. Это
предполагается, что если вам нужно выполнять вычисления со сложными функциями, вы поймете
о обрезке веток. Проконсультируйтесь практически с любой (не слишком элементарной) книгой по сложным
переменные для просветления.
Для информации о правильном выборе отделения
сокращения для численных целей, хорошая ссылка должна быть следующей:
См. также
Кахан, В.: Отводы для сложных элементарных функций; или, Много шума о бит знака ничего. Изерлес, А., и Пауэлл, М. (ред.), Современное состояние в численном анализе. Кларендон Пресс (1987), стр. 165–211.
Python Numbers — неофициальная документация по разработке Python (заметки Виктора)
float : число с плавающей запятой, обычно IEEE 754 (64 бита, основание 2) сложный : комплексный номер, реализованный как два числа с плавающей запятой decimal.Decimal : число с плавающей запятой, хранящееся в базе 10, произвольное
точность дроби. Дробь : рациональная, числитель/знаменатель; автоматически
вычислить наибольший общий делитель (НОД) для упрощения дробиНомерная башня
Модуль чисел
определяется PEP 3141 — Иерархия типов для чисел.
- номера.Номер: базовый класс
- чисел. Комплекс: добавьте
реальных,изображений,сопряженных () - номеров. Real: подкласс Complex; добавить много операций с плавающей запятой.
- номеров. Rational: подкласс Real; добавить
числительизнаменательатрибуты - номеров. Интеграл: подкласс Rational
Подклассы:
- числа.Числа: целочисленные, с плавающей запятой, комплексные, десятичные.Десятичные, дробные.Дробь
- чисел.Комплекс: целое, число с плавающей запятой, комплекс, дроби.Дробь
- чисел.Вещественное число: целое число, число с плавающей запятой, дроби.Дробь
- чисел. Рациональное: целое, дроби. Дробь
- номеров. Интеграл: int
int, float, сложные методы и атрибуты:
-
conjugate() -
изображение -
настоящий
Атрибуты целого числа и дроби:
-
знаменатель -
числитель
Преобразования в Python
int(obj) и float(obj) accept:
-
int -
поплавок -
десятичный.
Десятичный -
дроби. Дробь -
байта -
ул
int(obj) округлений до нуля (ROUND_DOWN, например: int(0.9) == 0 и int(-0.9) == 0 ).
Но int(obj) и float(obj) отклонить:
-
сложный
комплекс(объект) принимает:
-
инт -
поплавок -
комплекс -
десятичный. Десятичный -
дроби. Дробь -
ул
Но комплекс(объект) отклоняет:
-
байт
decimal.Decimal(obj) принимает:
-
целый -
поплавок -
десятичный. Десятичный -
ул
Но десятичный. отклоняет:
Десятичный (объект)
-
сложный -
дроби. Дробь -
байта
дроби. Фракция (объект) принимает:
-
целое число -
поплавок -
десятичный.Десятичный -
дроби. Дробь -
стр.(например:"1"или"1/2")
Но дроби. Фракция(объект) брак:
-
сложный -
байта
тип int
Примеры:
>>> (123).bit_length()
7
>>> sys.int_info
sys.int_info (bits_per_digit = 30,
размер_цифры=4)
Сериализация в байтах:
>>> (123).to_bytes(4, 'мало')
б'{\х00\х00\х00'
>>> int.from_bytes(b'{\x00\x00\x00', 'маленький')
123
Округление:
-
int(float)вызываетfloat., поэтому округление до нуля (ОКРУГЛ_ВНИЗ)
__trunc__()
тип с плавающей запятой
Примеры:
>>> sys.float_info
sys.float_info (макс. = 1,7976931348623157e+308,
макс_эксп = 1024,
max_10_exp=308,
мин=2,2250738585072014e-308,
мин_эксп = -1021,
min_10_exp=-307,
копать=15,
мант_коп = 53,
эпсилон=2,220446049250313э-16,
основание = 2,
раунды=1)
>>> sys.float_repr_style
'короткий'
>>> (1.2).as_integer_ratio()
(5404319552844595, 4503599627370496)
Форматирование как шестнадцатеричное (основание 16):
>>> (1.1).hex()
'0x1.199999999999ap+0'
>>> float.fromhex('0x1.199999999999ap+0')
1.1
Округление:
- float.__trunc__(): Округление до нуля (ROUND_DOWN)
- float.__round__(): Округлить до ближайшего, а ничьи — до ближайшего четного целого числа
(ROUND_HALF_EVEN).

- float.__int__() — это псевдоним для float.__trunc__() (ROUND_DOWN)
Дробь
>>> дроби. Дробь (5, 10) # int / int Фракция (1, 2) >>> Fraction.Fraction(1.2) # число с плавающей запятой Дробь(5404319552844595, 4503599627370496)
C API
Преобразование объекта Python в целое число. Методы типа:
-
__int__(): слотtype->tp_as_number->nb_int -
__index__(): слоттип->tp_as_number->nb_index -
__trunc__()(без слота)
PyNumber_Long(obj) :
- Вызов
obj.__trunc__()(Округление до нуля, ROUND_DOWN) - или: если тип
obj— bytes или str, анализировать строку в десятичном виде (с основанием 10) - или: ошибка!
PyNumber_Index(x) вызывает метод __index__() : вызывает исключение, если
тип не имеет __index__() метод или если метод не возвращает точно
тип int (*).
_PyLong_FromNbInt(x) :
- Вызов
type(x).__int__(x): тип результата должен быть именно типом int (*) - или: ошибка!
_pylong_fromnbindexornbint (x) : __index __ () или __int __ () :
- return
x, еслитип (x) == int(pylng_checact hipexact(x) == int(pylng_checact.- вызов
type(x).__index__(x), если он определен: тип результата должен быть точно тип int (*)- вызов
Ошибкаtype(x).__int__(x)(вызов_PyLong_FromNbInt()): тип результата должен быть точно типом int (*)- , если это не подкласс int и тип не определен
__index__()ни__int__()метод- Новое в Python 3.8
- вызов
PyLong_AsLong() преобразует Python int в C длинный :
- вызов
_PyLong_FromNbIndexOrNbInt() - поднять OverflowError, если результат не помещается в C long
- Python 3.
7 и старше вызывают только __int__(), а не__index__().
PyLong_AsUnsignedLongMask() преобразует объект Python в беззнаковый C long :
- вызов
_PyLong_FromNbIndexOrNbInt(x)и затем_PyLong_AsUnsignedLongMask()на результат Ошибка - , если объект не может быть преобразован в int с помощью
_PyLong_FromNbIndexOrNbInt(x) - целочисленное переполнение маски
- Python 3.7 и старше вызывают только
__int__(), а не__index__().
(*) Особый случай: __int__() или __index__() возвращает подкласс int. Этот
функция устарела, начиная с Python 3.3 (см. коммит 6a44f6ee).
Эта функция может быть удалена из Python 3.9.: см. bpo-17576.
PyArg_ParseTuple и Py_BuildValue
Справочная документация: разбор аргументов и построение значений.
PyArg_ParseTuple реализован в
Python/getargs.c, основная функция:convertsimple().Py_BuildValue реализован в
Python/modsupport.c, основная функция:do_mkvalue().Функции ведут себя иначе, если
PY_SSIZE_T_CLEANопределяется:Для всех вариантов форматов
#(s#,y#и т.д.) тип файла Аргумент длины (int илиPy_ssize_t) управляется определением макросPY_SSIZE_T_CLEANдо включенияPython.h.
Форматы PyArg_ParseTuple:
-
"i"(Cint):__index__()или__int__(); вызовPyLong_AsLong(объект), но явно отклоняет float, используяPyFloat_Check(аргумент). -
"l"(Clong):__index__()или__int__(); вызовPyLong_AsLong(), но явно отклоняет float, используяPyFloat_Check(arg) -
"n"(Cssize_t):__index__(); вызовPyNumber_Index()и затемPyLong_AsSsize_t().
Исключение при переполнении. -
"к": вызовитеPyLong_AsUnsignedLongMask(), если это подкласс int или int, ошибка иначе. Целочисленное переполнение маски .
Примечание. В Python 3.7 и старше PyLong_AsLong() вызывает только __int__() ,
не __index__() .
Скрипт для обновления этой страницы
number_tower.py:
из __future__ import print_function
импортировать номера
предупреждения об импорте
импортные фракции
импортировать десятичный
warnings.simplefilter("ошибка", DeprecationWarning)
ЗНАЧЕНИЯ = (
("целое", 123),
("с плавающей запятой", 1,5),
(«сложный», сложный (0, 1,5)),
("десятичный.Десятичный", десятичный.Десятичный("1.1")),
("дроби.Дробь", дроби.Дробь(1, 7)),
("байты", б"123"),
("ул", "123"),
)
ТИПЫ = (
("целое", целое),
("плавать", плавать),
("сложный", сложный),
("десятичный.Десятичный", десятичный.
Десятичный),
("дроби.Дробь", дроби.Дробь),
)
для type_descr, num_type в TYPES:
принято = []
отклонено = []
для value_descr, значение в VALUES:
пытаться:
num_type(значение)
кроме TypeError:
отклонено.append(value_descr)
еще:
принято .append (value_descr)
если принято:
print("``%s(obj)`` accept:" % type_descr)
Распечатать()
для имени принято:
print("* ``%s``" % имя)
Распечатать()
если отклонено:
print("``%s(obj)`` отклонить:" % type_descr)
Распечатать()
для имени в отклоненном:
print("* ``%s``" % имя)
Распечатать()
Распечатать()
для имя_башни, тип_башни в (
("Число", цифры.Число),
("Комплекс", номера.Комплекс),
("Настоящий", цифры.Настоящий),
(«Рациональное», числа.Рациональное),
("Интеграл", числа.Интеграл),
):
подклассы = []
для type_descr, num_type в TYPES:
если issubclass (num_type, tower_type):
подклассы.

abs(a))
# [1 2 4]





фаза( x )
Возвращает
пара
log10( x )
другой простирается от 
isinf( x )
05 
0, число с плавающей запятой('нан'))
Десятичный
__trunc__() 
7 и старше вызывают только
Исключение при переполнении.
Десятичный),
("дроби.Дробь", дроби.Дробь),
)
для type_descr, num_type в TYPES:
принято = []
отклонено = []
для value_descr, значение в VALUES:
пытаться:
num_type(значение)
кроме TypeError:
отклонено.append(value_descr)
еще:
принято .append (value_descr)
если принято:
print("``%s(obj)`` accept:" % type_descr)
Распечатать()
для имени принято:
print("* ``%s``" % имя)
Распечатать()
если отклонено:
print("``%s(obj)`` отклонить:" % type_descr)
Распечатать()
для имени в отклоненном:
print("* ``%s``" % имя)
Распечатать()
Распечатать()
для имя_башни, тип_башни в (
("Число", цифры.Число),
("Комплекс", номера.Комплекс),
("Настоящий", цифры.Настоящий),
(«Рациональное», числа.Рациональное),
("Интеграл", числа.Интеграл),
):
подклассы = []
для type_descr, num_type в TYPES:
если issubclass (num_type, tower_type):
подклассы.