Как написать модуль числа на питоне

Содержание:развернуть

  • Что такое модуль числа
  • Abs
  • Fabs
  • Основные свойства модулей

Запускаю китайскую реплику «ТАРДИС», и вот мы в пятом классе. На доске нарисована числовая ось, а на ней выделен отрезок. Его начало в точке 4, а конец — в 8. Учительница говорит, что длину отрезка можно найти путём вычитания координаты начала отрезка из координаты его конца. Вычитаем, получаем 4, и радуемся — мы нашли длину. Ура! 🎉

Перемещаемся на год вперёд, и там происходит странное: учительница выделяет мелом другой отрезок, но делает это в каком-то неправильном месте — левее точки с цифрой «0». Теперь перед нами старая задача, но с новыми числами и даже буквами: A, B, минус 4 и минус 8. Мы начинаем искать длину отрезка AB = [-4;-8]:

Переводим непонимающий взгляд с получившейся отрицательной длины на довольную улыбающуюся учительницу, а затем на доску. Там наверху, рядом с сегодняшней датой, написана тема урока: «Модуль числа».

Что такое модуль числа

Теперь по-взрослому.

Модуль числа называют абсолютной величиной.

Для вещественных чисел модуль определяется так:

Формула модуля числа для вещественных чисел

Т.е. в любом случае, модуль — число большее или равное 0. Поэтому отрицательная длина в примере хитрой учительницы должна была быть взята по модулю:

Тогда дети бы увидели, что геометрический смысл модуля — есть расстояние. Это справедливо и для комплексных чисел, однако формальное определение для них отличается от вещественного:

, где z — комплексное число: z = x + iy.

В Python для нахождения модуля числа применяются две функции: fabs() из подключаемой библиотеки math и встроенная функция abs().

Abs

В то время как math.fabs() может оперировать только вещественными аргументами, abs() отлично справляется и с комплексными. Для начала покажем, что abs в python работает строго в соответствии с математическим определением.

# для вещественных чисел
print(abs(-1))
print(abs(0))
print(abs(1))

> 1
> 0
> 1

Как видно, с вещественными числами всё в порядке. Перейдём к комплексным.

# для комплексных чисел
print(complex(-3, 4))
print(abs(complex(-3, 4)))

> (-3+4j)
> 5.0

Если вспомнить, что комплексное число выглядит так: z = x + iy, а его модуль вычисляется по формуле:

, то можно без труда посчитать, что sqrt(3**2 + 4**2) действительно равно 5.0.

Можно заметить, что abs() возвращает значения разных типов. Это зависит от типа аргумента:

print(type(abs(1)))
> <class 'int'>

print(type(abs(1.0)))
> <class 'float'>

print(type(abs(complex(1.0, 1.0))))
<class 'float'>

В этом кроется ещё одно отличие abs() от fabs(). Функция из модуля math всегда приводит аргумент к вещественному типу, а если это невозможно сделать — выбрасывает ошибку:

print(type(math.fabs(complex(2,3))))
> TypeError: can't convert complex to float

Fabs

Для начала работы с fabs() необходимо импортировать модуль math с помощью следующей инструкции:

import math

Мы уже выяснили, что fabs() не работает с комплексными числами, поэтому проверим работу функции на вещественных:

print(math.fabs(-10))
print(math.fabs(0))
print(math.fabs(10))

> 10.0
> 0.0
> 10.0

Функция производит вычисления в соответствие с математическим определением, однако, в отличие от abs(), всегда возвращает результат типа float:

print(type(math.fabs(10)))
> <class 'float'>

Основные свойства модулей

# Квадрат модуля = квадрату числа
print(pow(4, 2) == pow(abs(4), 2))
> True

# |x| = |-x|
print(abs(-10) == abs(10))
> True

# Модуль произведения = произведению модулей: |ab|=|a||b|
print(math.fabs(11 * 3) == math.fabs(11) * math.fabs(3))
> True

# Аналогично для деления: |a/b|=|a|/|b|
print(math.fabs(48/8) == math.fabs(48) / math.fabs(8))
> True

# |a ** b| = |a| ** b
print(abs(2 ** 10) == abs(2) ** 10)
> True

И еще несколько важных неравенств:

  • m <= |m|
  • -|m| <= m
  • |m| >= 0
  • |m + n| <= |m| + |n|
  • |m – n| <= |m| + |n|
  • |m| — |n| <= |m + n|
  • |m + n| >= ||m| — |n||
  • |m – n| >= ||m| — |n||

Перейти к содержанию

Картинка к уроку "Вычисление модуля числа в Python"

На чтение 1 мин Просмотров 2.2к. Опубликовано

Для вычисления модуля числа в языке программирования Python можно использовать несколько способов.

Вычисление модуля числа с помощью модуля Math

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

import math

И после воспользуемся командой:

math.fabs(число или переменная, модуль которого необходимо вычислить)

Рассмотрим конкретный пример вычисления модуля на языке программирования Python:

import math
print(math.fabs(-56))
>>> 56.0

Вычисление модуля числа написанием собственной функции

Для вычисления модуля вещественного числа можно написать простую собственную функцию:

def module(a):
    if a <0:
        a = a*-1
    return a
print(module(-56))
>>> 56

Здесь в первой строке мы объявляем новую функцию module. Далее в функции проверяем, отрицатильное ли число получает функция на входе, и, если это так, то умножаем его на -1. Не зависимо от результата, в конце функция возвращает результат с помощью команды return.

The Python abs() function return the absolute value and remove the negative sign of a number in Python.  

Python abs() Function Syntax

Syntax: abs(number)

  • number: Integer, floating-point number, complex number.

Return: Returns the absolute value.

Python abs() Function Example

Python abs() Function with int in Python.

Python3

var = -94

print('Absolute value of integer is:', abs(var))

Output:

94

Example 1: Get the absolute value of a number

In this example, we pass int data into the abs() function and it will return an absolute value.

Python3

var = -100

print('Absolute value of integer is:', abs(var))

Output: 

Absolute value of integer is: 100

Example 2: Get the absolute value of a floating  number

In this example, we pass float data into the abs() function and it will return an absolute value.

Python3

float_number = -54.26

print('Absolute value of float is:'

                  abs(float_number))

Output: 

Absolute value of float is: 54.26

Example 3: Get the absolute value of a complex number

In this example, we pass Python complex data into the abs() function and it will return an absolute value.

Python3

complex_number = (3 - 4j)

print('Absolute value or Magnitude of complex is:', abs(complex_number))

Output: 

Absolute value or Magnitude of complex is: 5.0

Example 4: Time-Distance calculation using Python abs()

This equation shows the relationship between speed, distance traveled and time taken and we know speed, time and distance are never negative, for this, we will use abs() methods to calculate the exact time, distance, and speed.

Formula used:  

Distance  = Speed * Time

Time = Distance / Speed

Speed = Distance / Time

Python3

def cal_speed(dist, time):

    print(" Distance(km) :", dist)

    print(" Time(hr) :", time)

    return dist / time

def cal_dis(speed, time):

    print(" Time(hr) :", time)

    print(" Speed(km / hr) :", speed)

    return speed * time

def cal_time(dist, speed):

    print(" Distance(km) :", dist)

    print(" Speed(km / hr) :", speed)

    return speed * dist

print(" The calculated Speed(km / hr) is :",

      cal_speed(abs(45.9), abs(2.0)))

print("")

print(" The calculated Distance(km) :",

      cal_dis(abs(62.9), abs(2.5)))

print("")

print(" The calculated Time(hr) :",

      cal_time(abs(48.0), abs(4.5)))

Output:

 Distance(km) : 45.9
 Time(hr) : 2.0
 The calculated Speed(km / hr) is : 22.95

 Time(hr) : 2.5
 Speed(km / hr) : 62.9
 The calculated Distance(km) : 157.25

 Distance(km) : 48.0
 Speed(km / hr) : 4.5
 The calculated Time(hr) : 216.0

Time Complexity:  O(1)

Auxiliary Space: O(1)

The Python abs() function return the absolute value and remove the negative sign of a number in Python.  

Python abs() Function Syntax

Syntax: abs(number)

  • number: Integer, floating-point number, complex number.

Return: Returns the absolute value.

Python abs() Function Example

Python abs() Function with int in Python.

Python3

var = -94

print('Absolute value of integer is:', abs(var))

Output:

94

Example 1: Get the absolute value of a number

In this example, we pass int data into the abs() function and it will return an absolute value.

Python3

var = -100

print('Absolute value of integer is:', abs(var))

Output: 

Absolute value of integer is: 100

Example 2: Get the absolute value of a floating  number

In this example, we pass float data into the abs() function and it will return an absolute value.

Python3

float_number = -54.26

print('Absolute value of float is:'

                  abs(float_number))

Output: 

Absolute value of float is: 54.26

Example 3: Get the absolute value of a complex number

In this example, we pass Python complex data into the abs() function and it will return an absolute value.

Python3

complex_number = (3 - 4j)

print('Absolute value or Magnitude of complex is:', abs(complex_number))

Output: 

Absolute value or Magnitude of complex is: 5.0

Example 4: Time-Distance calculation using Python abs()

This equation shows the relationship between speed, distance traveled and time taken and we know speed, time and distance are never negative, for this, we will use abs() methods to calculate the exact time, distance, and speed.

Formula used:  

Distance  = Speed * Time

Time = Distance / Speed

Speed = Distance / Time

Python3

def cal_speed(dist, time):

    print(" Distance(km) :", dist)

    print(" Time(hr) :", time)

    return dist / time

def cal_dis(speed, time):

    print(" Time(hr) :", time)

    print(" Speed(km / hr) :", speed)

    return speed * time

def cal_time(dist, speed):

    print(" Distance(km) :", dist)

    print(" Speed(km / hr) :", speed)

    return speed * dist

print(" The calculated Speed(km / hr) is :",

      cal_speed(abs(45.9), abs(2.0)))

print("")

print(" The calculated Distance(km) :",

      cal_dis(abs(62.9), abs(2.5)))

print("")

print(" The calculated Time(hr) :",

      cal_time(abs(48.0), abs(4.5)))

Output:

 Distance(km) : 45.9
 Time(hr) : 2.0
 The calculated Speed(km / hr) is : 22.95

 Time(hr) : 2.5
 Speed(km / hr) : 62.9
 The calculated Distance(km) : 157.25

 Distance(km) : 48.0
 Speed(km / hr) : 4.5
 The calculated Time(hr) : 216.0

Time Complexity:  O(1)

Auxiliary Space: O(1)

На чтение 11 мин Просмотров 3.1к. Опубликовано 05.12.2021

В этом уроке мы познакомимся с встроенным модулем стандартной библиотеки Python. Этот модуль предоставляет множество функций для математических вычислений. В целях ускорения вычислений данный модуль «под капотом» написан на языке C.

Содержание

  1. Функции представления чисел
  2. ceil() и floor() — целая часть числа
  3. Функция fabs() — модуль числа
  4. factorial() — функция факториала
  5. Функция fmod() — остаток от деления
  6. Функция frexp()
  7. Функция fsum() — точная сумма float
  8. Функции возведения в степень и логарифма
  9. Функция exp()
  10. Функция expm1()
  11. Функция log() — логарифм числа
  12. Функция log1p()
  13. Функция log10()
  14. Функция pow() — степень числа
  15. Функция sqrt() — квадратный корень числа
  16. Тригонометрические функции
  17. Функция преобразования углов
  18. Математические константы

Функции представления чисел

ceil() и floor() — целая часть числа

Эти функции мы уже рассматривали в одной из прошлых статей.
Кратко повторим.
ceil() и floor() — способы выполнить округление. Обе принимают число с дробной частью (тип float), а возвращают целое (тип int). Разница же между ними в том, что ceil() округляет число вверх (до ближайшего большего целого числа), а floor() — вниз.


from math import floor, ceil

float_var = 3.14
first_int_var = floor(float_var)
second_int_var = ceil(float_var)
print(f'Число {float_var} имеет тип {type(float_var)}')
print(f'Округляем число {float_var} вниз и получаем {first_int_var}')
print('С типом', type(first_int_var))
print(f'Округляем число {float_var} вверх и получаем {second_int_var}')
print('С типом', type(second_int_var))
# Вывод:
Число 3.14 имеет тип <class 'float'>
Округляем число 3.14 вниз и получаем 3
С типом <class 'int'>
Округляем число 3.14 вверх и получаем 4
С типом <class 'int'>

Не забудьте импортировать модуль math в свой проект!

Функция fabs() — модуль числа

Как и встроенная функция Питона abs, функция math.fabs возвращает модуль числа (если чило отрицательное, то отбрасывается знак «-»). Но есть между ними и важные отличия. Во-первых, math.fabs не предназначена для работы с комплексными числами, во-вторых, в отличие от abs, она возвращает не целочисленное, а дробное число.


from math import fabs

var = -3
first_int_var = abs(var)
second_int_var = fabs(var)
print(f'Число {var} имеет тип {type(float_var)}')
print(f'Модуль числа {var}, полученный функцией abs: {first_int_var}')
print('С типом', type(first_int_var))
print(f'Модуль числа {float_var}, полученный функцией fabs: {second_int_var}')
print('С типом', type(second_int_var))
print(abs(complex(1, 2)))
print(fabs(complex(1, 2)))
# Вывод:
Число -3 имеет тип <class 'int'>
Модуль числа -3, полученный функцией abs: 3
С типом <class 'int'>
Модуль числа -3, полученный функцией fabs: 3.0
С типом <class 'float'>
2.23606797749979
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 12, in
print(fabs(complex(1, 2)))
TypeError: can't convert complex to float

factorial() — функция факториала

Эта функция предназначена для получения факториала.
Пример:


from math import factorial

var = 3
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
Число 3 имеет тип <class 'int'>
Факториал числа 3, полученный функцией factorial: 6
С типом <class 'int'>

Естественно, функция принимает только целое положительное число.


from math import factorial

var = -3
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 4, in
first_int_var = factorial(var)
ValueError: factorial() not defined for negative values
from math import factorial


var = 3.14
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py:4: DeprecationWarning: Using factorial() with floats is deprecated
first_int_var = factorial(var)
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 4, in
first_int_var = factorial(var)
ValueError: factorial() only accepts integral values

Функция fmod() — остаток от деления

Функция fmod() является расширением оператора % — в отличие от него, данная функция может работать с числами с плавающей точкой.
Пример:


from math import fmod

var = 3.14
print('fmod(var, 2)', fmod(var, 2))
print('fmod(2, var)', fmod(2, var))
print('fmod(var, 1)', fmod(var, 1))
print('fmod(var, 3.14)', fmod(var, 3.14))
print('fmod(var, 50)', fmod(var, 50))
# Вывод:
fmod(var, 2) 1.1400000000000001
fmod(2, var) 2.0
fmod(var, 1) 0.14000000000000012
fmod(var, 3.14) 0.0
fmod(var, 50) 3.14

Функция frexp()

Эта функция возвращает мантиссу и показатель степени.
Пример:


from math import frexp

var = 3.14
print('frexp(var)', frexp(var))
# Вывод:
frexp(var) (0.785, 2)

Функция fsum() — точная сумма float

Вычисляет точную сумму значений с плавающей точкой в итерируемом объекте и сумму списка или диапазона данных.
Пример:


from math import fsum

var_list = [1/i for i in range(1, 10)]
print(f'Сумма элементов последовательностиn{var_list}nравна', fsum(var_list))
# Вывод:
Сумма элементов последовательности
[1.0, 0.5, 0.3333333333333333, 0.25, 0.2, 0.16666666666666666, 0.14285714285714285, 0.125, 0.1111111111111111]
равна 2.828968253968254

Функции возведения в степень и логарифма

Функция exp()

Эта функция принимает один параметр в виде дробного числа и возвращает e^x.
Пример:


from math import exp

var_list = 3.14
print(f'exp(3.14):', exp(var_list))
# Вывод:
exp(3.14): 23.103866858722185

Функция expm1()

Эта функция работает так же, как и exp, но возвращает exp(x)-1. Здесь, expm1 значит exm-m-1, то есть, exp-minus-1.
Пример:


from math import exp, expm1

var_list = 3.14
print(f'exp(3.14) - 1:', exp(var_list) - 1)
print(f'expm1(3.14):', expm1(var_list))
# Вывод:
exp(3.14) - 1: 22.103866858722185
expm1(3.14): 22.103866858722185

Функция log() — логарифм числа

Функция log(x[,base]) находит логарифм числа x по основанию e (по умолчанию). base— параметр опциональный. Если нужно вычислить логарифм с определенным основанием, его нужно указать.
Пример:


from math import log

var_list = 3.14
print(f'log(3.14):', log(var_list))
# Вывод:
log(3.14): 1.144222799920162

Функция log1p()

Эта функция похожа на функцию логарифма, но добавляет 1 к x. log1p значит log-1-p, то есть, log-1-plus.
Пример:


from math import log, log1p

var_list = 3.14
print(f'log(3.14 + 1):', log(var_list + 1))
print(f'log1p(3.14):', log1p(var_list))
# Вывод:
log(3.14 + 1): 1.420695787837223
log1p(3.14): 1.420695787837223

Функция log10()

Вычисляет логарифм по основанию 10.
Пример:


from math import log10

var_list = 3.14
print(f'log10(3.14):', log10(var_list))
# Вывод:
log10(3.14): 0.49692964807321494

Функция pow() — степень числа

Используется для нахождения степени числа. Синтаксис функции pow(Base, Power). Она принимает два аргумента: основание и степень.
Пример:


from math import pow

var_list = 3.14
print(f'pow(3.14, 10):', pow(var_list, 10))
print(f'pow(10, 3.14):', pow(10, var_list))
print(f'pow(10, 10):', pow(10, 10))
# Вывод:
pow(3.14, 10): 93174.3733866435
pow(10, 3.14): 1380.3842646028852
pow(10, 10): 10000000000.0

Функция sqrt() — квадратный корень числа

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


from math import sqrt

var_list = 3.14
print(f'sqrt(3.14):', sqrt(var_list))
print(f'sqrt(93174.3733866435):', sqrt(93174.3733866435))
print(f'sqrt(10000000000):', sqrt(10000000000))
# Вывод:
sqrt(3.14): 1.772004514666935
sqrt(93174.3733866435): 305.2447761824001
sqrt(10000000000): 100000.0

Тригонометрические функции

В Python есть следующие тригонометрические функции.

Функция Значение
sin принимает радиан и возвращает его синус
cos принимает радиан и возвращает его косинус
tan принимает радиан и возвращает его тангенс
asin принимает один параметр и возвращает арксинус (обратный синус)
acos принимает один параметр и возвращает арккосинус (обратный косинус)
atan принимает один параметр и возвращает арктангенс (обратный тангенс)
sinh принимает один параметр и возвращает гиперболический синус
cosh принимает один параметр и возвращает гиперболический косинус
tanh принимает один параметр и возвращает гиперболический тангенс
asinh принимает один параметр и возвращает обратный гиперболический синус
acosh принимает один параметр и возвращает обратный гиперболический косинус
atanh принимает один параметр и возвращает обратный гиперболический тангенс

Пример:


from math import sin, cos, tan, acos, atan, sinh, acosh, atanh, asin

var = 0.5
print('sin(var):', sin(var))
print('cos(var):', cos(var))
print('tan(var):', tan(var))
print('acos(var):', acos(var))
print('asin(var):', asin(var))
print('atan(var):', atan(var))
print('sinh(var):', sinh(var))
print('acosh(3.14):', acosh(3.14))
print('atanh(var):', atanh(var))
# Вывод:
sin(var): 0.479425538604203
cos(var): 0.8775825618903728
tan(var): 0.5463024898437905
acos(var): 1.0471975511965979
asin(var): 0.5235987755982989
atan(var): 0.4636476090008061
sinh(var): 0.5210953054937474
acosh(3.14): 1.810991348900196
atanh(var): 0.5493061443340549

Функция преобразования углов

Эти функции преобразуют угол. В математике углы можно записывать двумя способами: угол и радиан. Есть две функции в Python, которые конвертируют градусы в радиан и обратно.
• degrees(): конвертирует радиан в градусы;
• radians(): конвертирует градус в радианы;
Пример:


from math import degrees, radians

var_1 = 3.14
var_2 = 4.13
print('degrees(var_1):', degrees(var_1))
print('radians(var_2):', radians(var_2))
# Вывод:
degrees(var_1): 179.9087476710785
radians(var_2): 0.07208209810736581

Математические константы

В Python есть две математические константы: pi и e.
1. pi: это математическая константа со значением 3.1416..
2. e: это математическая константа со значением 2.7183..
Пример:


import math

# вывод значения PI
print("значение PI", math.pi)

# вывод значения e
print("значение e", math.e)
Вывод:
значение PI 3.141592653589793
значение e 2.718281828459045

Понравилась статья? Поделить с друзьями:
  • Как написать модератору сайта одноклассники
  • Как написать модераторам тик ток
  • Как написать модераторам телеграмм
  • Как написать модельному агентству
  • Как написать модель угроз