Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питон ТП6 / Питон.docx
Скачиваний:
24
Добавлен:
18.08.2022
Размер:
13.07 Mб
Скачать

Именованные функции: определение и вызов.

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

Именованные функции

Объявление функции и вызов

Именованные функции начинаются с ключевого слова def.

Функции описывают, затем можно использовать.

Формат описания функции:

In [ ]:

def <имя функции>(<список аргументов>):

<операторы>

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

Приведем пример функции, которая выводит приветствие

In [1]:

def Hello(name):

print("Hello, ", name, sep='')

#вызов функции

Hello("Marry") #приветствует Marry

Hello("Alex") #приветствуем Alex

Hello, Marry

Hello, Alex

Функция может возвращать некоторое значение, например, стандартная функция cos(x) возвращает число. Тогда в теле функции должен присутствовать оператор return, а после него то значение, которое должно быть возвращено в качестве результата функции.

Рассмотрим пример функции, которая возвращает либо какое из чисел максимальное, либо фразу "Числа равны"

In [2]:

def maximum(a, b):

if a > b:

return "Наибольшее число " + str(a)

elif b > a:

return "Наибольшее число " + str(b)

else:

return "Числа равны " + str(b)

print(maximum(2, 5))

print(maximum(12, 5))

print(maximum(5, 5))

Наибольшее число 5

Наибольшее число 12

Числа равны 5

Рекурсивная функция — это та, которая вызывает сама себя.

Рекурсивной называется функция, внутри которой встречается вызов этой же функции, но с другими параметрами. Такая рекурсия называется простой.

Косвенной называется рекурсия, когда вызов функции осуществляется опосредованно: функция A вызывает функцию B, а функция B вызывает функцию A.

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

Общий формат записи рекурсивной функции:

def func(arg):

if граничные_условия:

return значение

else:

return выражение_с_рекурсивным_вызовом

Например, факториал числа

n!=1*2*...*(n-1)*n = (n-1)! * n,

0! = 1! = 1.

Т.е. n! выражается через (n-1)!

def fact(n):

if n == 0 or n == 1:

return 1

else:

return fact(n-1) * n

print('1! =', fact(1))

print('5! =', fact(5))

Рекурсивными могут функции, которые не возвращают значения.

Рассмотрим функцию для перевода десятичного числа в систему счисления (СС) с основанием n<10

def trans(a, n=2):

#если не указывать основание СС,

# то число переводится в 2-ичную СС

if a > 0:

trans(a//n, n) #переводим сначала целцю часть от деления a на n

print(a % n, end='')#выводим остатое от деления a на n

print()

trans(14)#перевод числа 14 в 2-ичную систему счисления

print()

trans(14, 3)#перевод числа 14 в 3-ичную систему счисления

print()

trans(14, 8)#перевод числа 14 в 8-ичную систему счисления

Соседние файлы в папке питон ТП6