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

Функции в Python: вызов и возврат. Математические функции

Статью подготовили специалисты образовательного сервиса Zaochnik.

Содержание:

Функции в Python создаются с использованием инструкции `def`. Это позволяет создать объект функции и назначить ему имя, которое будет служить ссылкой на этот объект.

Пример 1

```python

def TestFunction(arg1, arg2, arg3):

     return arg1 + arg2 + arg3

```

В этом примере `TestFunction` — это имя функции, которое используется как при её описании, так и при вызове.

После заголовка функции в новой строке с отступом располагаются выражения тела функции.

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

Вызов функции и возврат значения

Пример вызова функции:

```python

a = TestFunction(10, 2, 5)

```

Если бы внутри функции отсутствовала команда `return`, то ничего не возвращалось бы, и переменная `a` не получила бы числовое значение. Если функция не указывает возвращаемое значение через `return`, то по умолчанию возвращается `None`.

Передача параметров в функцию

При описании функции после её имени в круглых скобках указываются параметры. Если их нет, скобки остаются пустыми, но они обязательно должны присутствовать. За скобками ставится двоеточие, обозначающее конец заголовка функции.

При вызове функции в скобках указываются переменные или выражения, которые станут параметрами. Даже если у функции нет параметров, пустые скобки все равно нужны.

Допустим, нам нужно вычислить число сочетаний из `n` элементов по `k`: для этого понадобятся факториалы трех значений: `n`, `k` и `n-k`. Вместо создания трех циклов, что увеличивает размер программы из-за дублирования кода, лучше написать одну функцию для вычисления факториала любого числа `n` и использовать её три раза. Вот как может выглядеть такая функция:

```python

def factorial(n):

     result = 1

for i in range(2, n + 1):

     result *= i

return result

```

Этот код должен находиться в том месте, где мы захотим вызвать функцию `factorial`.

Первая строка — это описание функции. `factorial` — это имя функции. В круглых скобках находится список параметров, который, в нашем случае, представляет собой одно значение `n`, заканчивающееся двоеточием.

Затем идет тело функции, оформленное в виде блока с отступом. Здесь мы вычисляем факториал числа `n` и сохраняем его в переменной `result`. Завершает работу функции команда `return result`, которая возвращает значение переменной. Инструкция `return` может находиться в любом месте функции, и её выполнение завершает работу функции, возвращая указанное значение. Если функция не возвращает значение, команда `return` используется без возвращаемого значения, а также в функциях без `return` может отсутствовать вовсе.

Теперь мы можем использовать нашу функцию несколько раз. В этом примере вызовем функцию `factorial` три раза для расчета трех факториалов: `factorial(n)`, `factorial(k)`, `factorial(n-k)`.

```python

n = int(input())

k = int(input())

print(factorial(n) // (factorial(k) * factorial(n - k)))

```

Мы также можем объявить функцию `binomial`, которая принимает два целых параметра `n` и `k` и вычисляет число сочетаний из `n` по `k`:

```python

def binomial(n, k):

     return factorial(n) // (factorial(k) * factorial(n - k))

```

Теперь в основной программе мы можем вызвать функцию `binomial` для нахождения числа сочетаний:

```python

print(binomial(n, k))

```

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

```python

def max(a, b):

     if a > b:

          return a

     else:

          return b

```

А теперь мы можем реализовать функцию `max3`, которая находит максимум из трех чисел:

```python

def max3(a, b, c):

     return max(max(a, b), c)

```

Функция `max3` вызывает функцию `max` дважды: в первый раз для нахождения максимума из `a` и `b`, затем — для нахождения максимума из полученного значения и `c`.

Математические функции в Python

Для работы с математическими функциями в Python необходимо импортировать библиотеку `math`:

```python

import math

```

После импорта мы можем использовать функции из этой библиотеки следующим образом:

`math.имя_функции(…)`

Модуль `math` предоставляет множество математических функций и констант, полезных для научных расчетов, инженерных вычислений и различных математических операций.

Основные категории функций модуля math

Функции в библиотеке math:

  • `ceil(x)` — возвращает ближайшее целое значение, большее или равное `x` (округление "вверх").
  • `fabs(x)` — возвращает абсолютное значение числа `x` (модуль). В Python также есть функция `abs`, но она возвращает модуль числа с тем же типом; `fabs` всегда возвращает `float`.
  • `factorial(x)` — возвращает факториал целого числа `x`. Если `x` не является целым, возбуждается исключение `ValueError`.
  • `floor(x)` — возвращает округленное в меньшее целое значение `x` (округление "вниз").
  • `frexp(x)` — возвращает число в экспоненциальной записи, а также мантиссу `m` и порядок `n` в виде кортежа `(m, n)`.
  • `fsum(iterable)` — возвращает сумму числовых элементов итерируемого объекта в формате `float`.
  • `isinf(x)` — проверяет, является ли объект `x` бесконечностью.
  • `isnan(x)` — проверяет, является ли объект `x` NaN.
  • `ldexp(x, i)` — возвращает `x * (2**i)`.
  • `modf(x)` — возвращает дробную и целую часть `x` в виде кортежа, сохраняя знак.
  • `trunc(x)` — возвращает целую часть числа `x` в виде целого значения.

Степенные и логарифмические функции

  • `exp(x)` — возвращает `e**x`.
  • `log(x[, base])` — возвращает натуральный логарифм `x`, или логарифм по указанному основанию.
  • `log10(x)` — возвращает десятичный логарифм `x`.
  • `pow(x, y)` — возвращает `x` в степени `y`, аргументы приводятся к типу `float`.
  • `sqrt(x)` — возвращает квадратный корень из `x`.

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

  • `acos(x)` — возвращает арккосинус `x` в радианах.
  • `asin(x)` — возвращает арксинус `x` в радианах.
  • `atan(x)` — возвращает арктангенс `x` в радианах.
  • `atan2(y, x)` — возвращает арктангенс `y/x` с учетом квадранта.
  • `cos(x)` — возвращает косинус `x` в радианах.
  • `hyp(x, y)` — возвращает длину гипотенузы.
  • `sin(x)` — возвращает синус `x` в радианах.
  • `tan(x)` — возвращает тангенс `x` в радианах.

Преобразование радианов в градусы и наоборот

  • `degrees(x)` — конвертирует радианы в градусы.
  • `radians(x)` — конвертирует градусы в радианы.

Пример программы с математическими функциями

```python

from math import *

def my_function(x):

     x = fabs(x) # Наша функция будет четной

     y = sqrt(x) # Извлекаем квадратный корень

     y = exp(sin(y) + 1) # Считаем синус, прибавляем 1 и возводим в экспоненту

     return y

print(my_function(2))

```

Функция может быть реализована и в функциональном стиле:

```python

from math import *

def my_function(x):

     return exp(sin(sqrt(fabs(x))) + 1)

print(my_function(2))

```

Навигация по статьям

Выполненные работы по программированию

  • Программирование

    Latex

    • Вид работы:

      Набор текста (компьютерный)

    • Выполнена:

      18 ноября 2017

    • Стоимость:

      400 руб.

    Заказать такую же работу
  • Программирование

    Lazarus

    • Вид работы:

      Решение задач

    • Выполнена:

      16 ноября 2017

    • Стоимость:

      2 800 руб.

    Заказать такую же работу
  • Программирование

    Электронный журнал посещаемости для студентов

    • Вид работы:

      Курсовая работа

    • Выполнена:

      10 ноября 2017

    • Стоимость:

      900 руб.

    Заказать такую же работу
  • Программирование

    Определить оценки внутреннего и внешнего качества при разработке приложения Блокнот

    • Вид работы:

      Контрольная работа

    • Выполнена:

      9 ноября 2017

    • Стоимость:

      4 200 руб.

    Заказать такую же работу
  • Программирование

    Контрольная работа Математические основы обработки информации

    • Вид работы:

      Контрольная работа

    • Выполнена:

      22 октября 2017

    • Стоимость:

      3 500 руб.

    Заказать такую же работу
  • Программирование

    Аналитическая справка об участии воспитанников в жизни ДОУ

    • Вид работы:

      Набор текста (компьютерный)

    • Выполнена:

      12 октября 2017

    • Стоимость:

      400 руб.

    Заказать такую же работу