Функция frexp() является одной из функций стандартной математической библиотеки Python. Она возвращает мантиссу и показатель степени в виде пары (m, e) заданного значения x.
Что такое функция frexp() в Python?
Python frexp() — это встроенная функция в математической библиотеке, которая помогает нам найти мантиссу и показатель степени x как пару(m, e), где m — число с плавающей запятой, а e — целое число, такое что x == m * 2**e. Если значение x равно 0, эта функция возвращает(0.0,0), в противном случае она возвращает 5 <= abs(m) <1.
Если x равен нулю, возвращает(0,0, 0), в противном случае 0,5 <= abs(m) < 1. Это используется для «разбора» внутреннего представления числа с плавающей запятой переносимым способом.
Синтаксис
|
1 |
math.frexp(x) |
Здесь x — число, для которого мы найдем мантиссу и показатель степени.
Возвращаемое значение
Функция frexp() возвращает мантиссу и показатель степени x в виде пары(m, e), где m — число с плавающей запятой, а e — целое число. Однако, если заданное значение x не является числом, эта функция возвращает TypeError.
Пример программирования
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# app.py # Importing math library import math # Demonstrating working of frexp() # Using different types of value of x # When x is positive number x = 5 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # When x is float type number x = 6.4 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # When x is a negative number x = -32 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # Declaring a list x = [4, 3, 7] # Using frexp() with the 3rd value of the list print("Pair of mantissa and exponent of ", x[2], " is: ", math.frexp(x[2])) # When x is not a number x = '41' print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) |
Выход:
|
1 2 3 4 5 6 7 8 |
Pair of mantissa and exponent of 5 is: (0.625, 3) Pair of mantissa and exponent of 6.4 is: (0.8, 3) Pair of mantissa and exponent of -32 is: (-0.5, 6) Pair of mantissa and exponent of 7 is: (0.875, 3) Traceback(most recent call last): File "frexp.py", line 27, in <module> print("Pair of mantissa and exponent of ",x," is: ",math.frexp(x)) TypeError: must be real number, not str |
В приведенном выше коде мы взяли различные типы значений x и проверили вывод с помощью метода frexp(). В результате мы можем видеть, что выходом является пара(m,e) каждого случая. Наконец, когда мы объявили значение x как символ, возвращается TypeError.
Использование frexp() с кортежем и списком в Python
См. следующий код, в котором мы определили список и кортеж Python.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# app.py import math # creating a list lst = [11, 21.11, 21.19, 30] # creating a tuple tpl =(-15.31, -41.31, -11.21, 46.19) # calculating mantissa and exponent # of 1st, 3rd elements in list print(math.frexp(lst[0])) print(math.frexp(lst[2])) # calculating mantissa and exponent # of 2nd, 3rd and 4th elements in tuple print(math.frexp(tpl[1])) print(math.frexp(tpl[2])) print(math.frexp(tpl[3])) |
Выход:
|
1 |
python3 app.py(0.6875, 4)(0.6621875, 5)(-0.64546875, 6)(-0.700625, 4)(0.72171875, 6) |
