Встроенные функции Python 3 для работы с числами.

Вступление

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

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

  • abs() для абсолютной величины
  • divmod() для нахождения частного и остального одновременно
  • pow() поднять число до определенной степени
  • round() округлить число до определенной десятичной точки
  • sum() для вычисления суммы элементов в интегрируемом типе данных

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

Абсолютная величина

Встроенная функция abs()вернет абсолютное значение числа, которое вы передадите ему. В математике абсолютное значение относится к расстоянию, которое число находится на числовой строке от 0. Абсолютное значение не учитывает, какое направление от нуля оно лежит, что означает, что отрицательные числа будут представлены положительными числами.

Чтобы привести некоторые примеры, абсолютное значение 15is 15, абсолютное значение -74is 74и абсолютное значение 0is 0.

Абсолютная ценность — важная концепция исчисления и реального анализа, но это также имеет смысл, когда мы думаем о повседневных ситуациях, таких как пройденное расстояние. Например, если мы пытаемся добраться куда-нибудь, что составляет 58 миль, но мы проезжаем 93 мили вместо этого, мы провалили наше первоначальное предназначение. Если мы хотим рассчитать теперь, сколько миль осталось, чтобы добраться до намеченного пункта назначения, мы получим отрицательное число, но мы не сможем проехать отрицательные мили.

Давайте воспользуемся abs()для решения этой проблемы:

destination_miles.py
miles_from_origin = 58  # Miles destination is from origin
miles_travelled = 93    # Miles travelled from origin to destination (too many)

# Calculate how many miles destination is from current location:
miles_to_go = miles_from_origin - miles_travelled   

print(miles_to_go)      # Print how many miles left (a negative number)
print(abs(miles_to_go)) # Use absolute value to account for negative number
Output
-35
35

На выходе мы видим, что, если мы не используем abs()функцию, в этом случае мы имеем отрицательное число -35. Хотя мы можем быть в положении, где miles_travelledменьше miles_from_origin, включая abs()функцию, учитывает возможность отрицательного числа.

С отрицательным числом abs()вернет положительное число, так как абсолютные значения всегда положительные или нулевые.

Перейдем к использованию abs()с положительным числом и нулем:

print(abs(89.9))
print(abs(0))
Output
89.9
0

Мы, скорее всего, будем использовать abs()переменную, которая может быть положительной или отрицательной в случае, когда мы ищем только положительное число. Чтобы учесть отрицательный ввод или результат, мы будем использовать, abs()чтобы изменить то, что возвращается как положительное число.

Поиск фактора и остатка в одной функции

Поскольку и разделение полов (которое возвращает фактор), так и модульное деление (которое возвращает остаток), тесно связаны между собой, полезно использовать функцию, которая объединяет обе операции сразу.

Встроенная функция Python divmod()объединяет два, возвращая сначала фактор, который поступает из деления пола, а затем в остальную часть.

Поскольку divmod()мы будем работать с двумя номерами, нам нужно передать два числа.

divmod(a,b)

С помощью этой функции мы в основном выполняем следующие действия:

a // b
a & b

Допустим, мы написали книгу длиной 80 000 слов. С нашим издателем мы можем выбрать либо 300, либо 250 слов на странице, и мы хотели бы узнать, сколько страниц у нас было бы в каждом случае. С divmod()мы можем видеть сразу , сколько страниц мы бы, и сколько слов будет перекинулся на дополнительной странице.

words_per_page.py
words = 80000       # How many words in our book
per_page_A = 300    # Option A, 300 words per page
per_page_B = 250    # Option B, 25- words per page

print(divmod(words,per_page_A)) # Calculate Option A
print(divmod(words,per_page_B)) # Calculate Option B
Output
(266, 200)
(320, 0)

В варианте A у нас будет 266 страниц, заполненных словами и 200 слов, оставшихся (⅔ на странице), всего 267 страниц, а в варианте B у нас будет даже 320-страничная книга. Если мы хотим быть экологически сознательными, мы можем выбрать вариант A, но если мы хотим выглядеть более впечатляющими с книгой большего размера, мы можем выбрать вариант B.

Поскольку функция divmod()может принимать как целые числа, так и float, давайте также рассмотрим пример использования float:

a = 985.5
b = 115.25

print(divmod(a,b))
Output
(8.0, 63.5)

В этом примере 8.0отношение пола составляет 985,5, разделенное на 115,25, и 63.5это остаток.

Имейте в виду, что вы можете использовать оператор разделения пола //и оператор modulo %для проверки того, что divmod()произошло:

print(a//b)
print(a%b)
Output
8.0
63.5

При использовании divmod()функции в Python. мы получаем как целое число раз, когда происходит деление, так и остаток возвращается.

Мощность

В Python вы можете использовать оператор, ** чтобы поднять число экспонентом, или вы можете использовать встроенную функцию, pow()которая принимает два числа.

Чтобы увидеть, как pow()работает эта функция, скажем, мы проводим исследования бактерий и хотим узнать, сколько бактерий у нас будет в конце дня, если мы начнем с 1. Конкретные бактерии, с которыми мы работаем с удвоением каждый час, поэтому мы будем вычислять 2 (удвоение) до мощности всего количества часов (24 в нашем случае).

bacteria.py
hours = 24
total_bacteria = pow(2,hours)

print(total_bacteria)
Output
16777216

Мы передали две pow()функции функции и определили, что к концу этого 24-часового периода у нас будет более 16 миллионов бактерий.

В математике, если мы хотим вычислить 3 по степени 3, она обычно написана так:

Вычисление, которое мы завершаем, равно 3 x 3 x 3, что равно 27.

Чтобы вычислить 3³ в Python, мы будем печатать pow(3,3).

Функция pow()будет принимать как целые числа, так и числа с плавающей запятой и предоставляет альтернативу использованию **оператора, когда вы намереваетесь поднять число до определенной мощности.

Число округлений

Быстрое и быстрое округление чисел становится важным при работе с поплавками с большим количеством десятичных знаков. Встроенная функция Python round()принимает два числа, одно для округления и одно, которое указывает количество десятичных знаков для включения.

Мы будем использовать эту функцию, чтобы принять float с более чем 10 десятичными знаками и использовать round()функцию для уменьшения десятичных знаков до 4:

i = 17.34989436516001
print(round(i,4))
Output
17.3499

В приведенном выше примере поплавок 17.34989436516001округлен до того, 17.3499что мы указали, что число десятичных знаков должно быть ограничено 4.

Обратите также внимание на то, что число round()циклов функции округляется, поэтому вместо предоставления 17.3498в качестве вывода оно предусмотрено, 17.3499потому что число, следующее за десятичным числом 8, — это число 9. Любое число, за которым следует число 5 или больше, будет округлено до следующий в целом число.

Давайте разложим синтаксис round():

round(number to round,number of decimal places)

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

Давайте рассмотрим пример простой программы, которая может рассчитать наконечник. Здесь мы будем приводить цифры, но мы могли бы переписать программу, чтобы вместо этого ввести числа, предоставленные пользователем. В этом примере 3 друга отправились в ресторан, который хотел бы разделить счет в размере 87,93 доллара, а также добавить 20% -ный совет.

bill_split.py
bill = 87.93                # Total bill
tip = 0.2                   # 20% tip
split = 3                   # Number of people splitting the bill

total = bill + (bill * tip) # Calculate the total bill

each_pay = total / split    # Calculate what each person pays

print(each_pay)             # What each person pays before rounded

print(round(each_pay,2))    # Round the number — we can’t split pennies
Output
35.172000000000004
35.17

В этой программе, мы спрашиваем первый для вывода числа после того, как мы вычисляем общий счет плюс наконечника разделен на 3, которое приводится к ряду с большим количеством знаков после запятой: 35.172000000000004. Поскольку это число не имеет смысла , так как в денежном рисунке, мы используем round()функцию и ограничение знаков после запятой 2, так что мы можем обеспечить вывод , что 3 друзья могут на самом деле работать с: 35.17.

Если вы предпочли бы округлить до числа с 0 только десятичным значением, вы можете сделать это, используя 0 в качестве второго параметра в round()функции:

round(345.9874590348545304636,0)

Это будет оценено 346.0.

Вы также можете передавать целые числа round()без получения ошибки, если вы получаете пользовательский ввод в виде целого числа, а не поплавка. Когда целое число передается как первый параметр, возвращается целое число.

Вычисление суммы

sum()Функция используется для вычисления суммы числовых типов соединения данных, в том числе списков , кортежей и словарей .

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

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]
print(sum(some_floats))
Output
49.5

Это будет работать аналогично кортежам и словарям:

print(sum((8,16,64,512)))   # Calculate sum of numbers in tuple
print(sum({-10: 'x', -20: 'y', -30: 'z'}))  # Calculate sum of numbers in dictionary 
Output
600 # Sum of numbers in tuple
-60 # Sum of numbers in dictionary

sum()Функция может занять до 2 -х аргументов, так что вы можете добавить дополнительное число в целом или поплавок формы , чтобы добавить к числам , которые составляют аргумент в первой позиции:

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]

print(sum(some_floats, 0.5))
print(sum({-10: 'x', -20: 'y', -30: 'z'},60))
Output
50.0
0

Когда вы не включаете второй аргумент, sum()функция по умолчанию добавляет 0 к типу данных со смешанными данными.

Заключение

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *