Функции в Python
Функция — это именованный блок кода, к которому можно обратиться из любого места программы. У функции есть имя и список входных параметров, а также возвращаемое значение.
Функция позволяет использовать в программе один и тот же фрагмент кода несколько раз.
Oбъявление функции в Python выглядит так:
def function_name ( argument1 , argument2 , . ):
# код функции
# def — DEclare Function — «объявить функцию»
# function_name — имя функции
# (argument1, argument2, . ) — список аргументов, поступающих на вход функции при ее вызове
# тело функции — это весь код, который идет после двоеточия
# Объявление функции
def hello (name):
print ( ‘Hello, ‘ + name)
# Вызовы функции
hello ( ‘Max’ )
hello ( ‘Ivan’ )
hello ( ‘Alex’ )
hello ( ‘Kate’ )
# Вывод
>> Hello, Max
>> Hello, Ivan
>> Hello, Alex
>> Hello, Kate
Оператор return возвращает значение из функции.
Представьте себе обычный калькулятор. Вы вводите первое число, операцию и второе число. Калькулятор возвращает нам результат операции над этими числами. Всё просто, не так ли? Функции точно так же умеют возвращать значение с помощью специального оператора return.
# Объявление функции
def sum2 ( a , b ):
return a + b
# Вызовы функции
s1 = sum2 ( 10 , 2 )
s2 = sum2 ( 108 , 100 )
s3 = sum2 ( 3 , 1 )
print ( f ‘s1 = ‘ )
print ( f ‘s2 = ‘ )
print ( f ‘s3 = ‘ )
# Функция умножения двух чисел
def mult2 ( a , b ):
return a * b
# Вызовем нашу функцию
m1 = mult2 ( 10 , 2 )
m2 = mult2 ( 108 , 100 )
m3 = mult2 ( 3 , 1 )
print ( f ‘m1 = ‘ )
print ( f ‘m2 = ‘ )
print ( f ‘m3 = ‘ )
Для параметров функции можно указывать значения по умолчанию. Это дает возможность вызывать функцию с меньшим числом параметров.
# Аргумент name по умолчанию равен ‘world’
def hello ( name = ‘world’ ):
print ( ‘Hello, ‘ + name)
Примеры
# Написать функцию square(), вычисляющую квадрат числа.
def square ( number ):
return number * number # Возвращаем результат работы функции обратно в программу
a = square ( 2 )
print (a)
# Напишите функцию perimetr, вычисляющую периметр прямоугольника со сторонами a и b.
def perimetr ( a , b ):
return 2 * (a + b)
p = perimetr ( 4 , 3 )
print (p)
# Напишите функцию isEven, возвращающую True, если число четное, и False, если — нечетное.
def isEven ( x ):
return x % 2 == 0
print ( isEven ( 10 ))
print ( isEven ( 11 ))
# Напишите функцию amountList, которая возвращает сумму всех элементов списка.
def amountList ( lst ):
amount = 0
f or x in lst:
amount += x
return amount
print ( amountList ([ 1 , 2 , 3 ]))
mylist = [ 1 , 2 , 4 , 8 , 16 ]
s = amountList (mylist)
print ( f ‘Сумма списка равна ‘ )
>> 6
>> Сумма списка [ 1 , 2 , 4 , 8 , 16 ] равна 31
# Напишите функцию fib, которая возвращает n-ное число Фибоначчи.
# Последовательность Фибоначчи выглядит так: 1 1 2 3 5 8 13 21 34
def fib ( n ):
a, b = 0 , 1
if n == 0 : return 0
f or i in range ( 1 , n):
a, b = b, a + b
return b
print ( fib ( 2 ))
print ( fib ( 3 ))
print ( fib ( 4 ))
print ( fib ( 5 ))
print ( fib ( 10 ))
# Напишите функцию fact, вычисляющую значение факториала числа N.
# Факториал числа — это произведение всех чисел от 1 до N.
# Например, факториал числа 5 равен 120 (5! = 120).
def fact ( n ):
result = 1
while n > 1 :
result *= n
n -= 1
return result
print ( fact ( 2 ))
print ( fact ( 3 ))
print ( fact ( 4 ))
print ( fact ( 5 ))
Решение задач
Напишите функцию, которая получает в качестве аргумента радиус круга и находит его площадь.
# Не забудьте написать функцию circle.
print ( circle ( 4 ))
print ( circle ( 1 ))
Напишите функцию, которая возвращает True, если число делится на 3, и False, если — нет.
# Не забудьте написать функцию three.
print ( three ( 4 ))
print ( three ( 3 ))
Напишите функцию, которая возвращает максимальный элемент из переданного в нее списка.
# Напишите функцию maxList.
mylist = [ 1 , 3 , 2 ]
print ( maxList (mylist))
Напишите функцию, которая возвращает количество четных элементов в списке.
# Напишите функцию evenCounter.
mylist = [ 1 , 10 , 2 , 4 , 6 ]
evens = evenCounter (mylist)
print (even)
Напишите функцию, которая возвращает список с уникальными (неповторяющихся) элементам.
# Напишите функцию unique.
mylist = [ 1 , 1 , 2 , 1 , 3 , 2 , 3 ]
print ( unique (mylist))
Python. Функция. Понятие функции. Общая форма. Примеры объявления и использования функций
Функция. Понятие функции. Общая форма. Примеры объявления и использования функций
Поиск на других ресурсах:
1. Что такое функция? Определение функции. Преимущества применения функций
Функция – это средство (способ) группирования фрагментов программного кода таким образом, что этот программный код может вызваться многократно с помощью использования имени функции.
Использование функций в программах на Python дает следующие взаимосвязанные преимущества:
- избежание повторения одинаковых фрагментов кода в разных частях программы;
- уменьшение избыточности исходного кода программы. Как следствие, уменьшение логических ошибок программирования;
- улучшенное восприятие исходного кода программы в случаях, где вместо блоков многочисленных инструкций (операторов) вызываются имена готовых протестированных функций. Это, в свою очередь, также уменьшает количество ошибок;
- упрощение внесения изменений в повторяемых блоках кода, организованных в виде функций. Достаточно внести изменения только в тело функции, тогда во всех вызовах данной функции эти изменения будут учтены;
- с помощью функций удобно разбивать сложную систему на более простые части. Значит, функции – удобный способ структурирования программы;
- уменьшение трудозатрат на программирование, а, значит, повышение производительности работы программиста.
В языке программирования Python для функций характерны следующие особенности:
- функции могут возвращать результат;
- функции могут получать входные параметры, влияющие на полученный результат.
2. Инструкция def . Общая форма объявления функции в Python. Создание функции
Чтобы функцию можно было использовать в программе, ее нужно создать (объявить). В языке Python создание (или объявление) функции выполняется с помощью инструкции def . Если интерпретатор достигает инструкции def , он создает новый объект функции и связывает упакованный код функции с ее именем.
Функция может возвращать или не возвращать значение. Если функция не возвращает значения, то считается, что она автоматически возвращает объект None , который игнорируется. В этом случае инструкция return необязательна. Общая форма такой функции следующая:
def (arg1, arg2, . argN): statement1> statement2> . statementN>
- name – имя функции, с которым будет связан объект функции и список параметров ( arg1 , arg2 , …, argN ). Объект функции получает имя name и создается во время выполнения (в Python нет времени компиляции);
- arg1 , arg2 , argN – список параметров, которые может получать функция. Функция также может быть без параметров;
- statement1 , statement2 , statementN – одна или несколько инструкций, которые следуют с отступлениями относительно def .
Если функция возвращает значение, то ее общая форма следующая
def (arg1, arg2, . argN): statement1> statement2> . statementN> return
- name – имя функции;
- arg1 , arg2 , …, argN – параметры функции (если такие есть);
- statement1 , statement2 , statementN – инструкции, которые реализованы в теле функции;
- value – значение, возвращаемое функцией.
Определение функции с помощью инструкции def может быть реализовано внутри других инструкций, например, внутри инструкции if .
3. Вызов функции
После того, как функция создана (объявлена), можно осуществлять ее вызов. Вызов функции осуществляется с помощью ее имени и перечня параметров.
Например. Пусть объявлена следующая функция
тогда ее вызов может быть, например, таким
В результате, значение res = 63 .
Интерпретатор, встретив инструкцию def выполняет следующие действия:
- создает новый объект функции с именем Mult2 ;
- упаковывает программный код функции и связывает объект с именем Mult2 ;
- вызывает функцию в программе.
4. Пример объявления и использования функции без параметров
Ниже приведен пример объявления и использования функции, которая не содержит параметров. Функция носит имя Hello и выводит на экран текст «Hello world!» 3 раза.
# Функции без параметров. # Объявить функцию с именем Hello(), # которая выводит "Hello world!" на экран. def Hello(): print("Hello world!") # Вызвать функцию Hello() в цикле while i=0 while i5. Пример объявления и использования функции, которая получает 1 параметр
Ниже приведен пример создания и использования функции Print3() , которая получает один параметр и выводит его на экран 3 раза.
# Объявить функцию с именем Print5(), # которая выводит значение параметра t на экран 3 раза def Print3(t): i=0 while iprint(t) i=i+1 # Вызвать функцию Print3() для разных типов параметров Print3('abc') Print3(2.85) Print3(-88) Print3(True)Результат выполнения программы
abc abc abc 2.85 2.85 2.85 -88 -88 -88 True True TrueКак видно из результата, в языке Python тип параметра, который передается в функцию, может быть любым. Интерпретатор распознает его по объекту, который передается в качестве параметра.
6. Пример объявления и использования функции, которая получает параметр и возвращает результат
Ниже приводится пример функции, которая получает параметр и возвращает результат. Функция осуществляет реверсирование строки.
Пример 2. Демонстрируется функция Summ() , которая получает два параметра a , b . Функция возвращает результат операции + над параметрами.
# Полиморфизм в функциях # Функция Summ() def Summ(a,b): return a+b # Вызов функции Summ() для разных типов объектов # 1. Для чисел x = 18 y = 3 z = Summ(x,y) # z = 40 # 2. Для строк s1 = "Hello " s2 = "world!" s3 = Summ(s1,s2) # s3 = 'Hello world!'9. Использование локальных переменных внутри функций. Пример
Внутри функции могут быть объявлены локальные переменные. Локальная переменная – это имя (объект), которое доступно только внутри определения функции (инструкции def). Локальная переменная существует только во время выполнения функции.
В теле любой функции локальные переменные определяются на основе следующих признаков:
- если переменная размещается в левой части операции присваивания;
- если переменная (имя) есть параметр (аргумент) функции;
- если переменная есть итератором в цикле for .
Пример. В примере создается функция SquareTriangle() , которая вычисляет площадь треугольника по его сторонам. Длины сторон треугольника с именами a , b , c есть входными параметрами функции. Если с a , b , c невозможно образовать треугольник, то функция возвращает значение None .
Затем происходит вызов функции SquareTriangle() и обработка результата возврата из функции.
# Вычислить площадь треугольника по длинам его сторон a,b,c # Импортировать математическую библиотеку import math def SquareTriangle(a,b,c): if (((a+b)or ((b+c)or ((a+c)return None else: p = (a+b+c)/2 # это локальная переменная p s = math.sqrt(p*(p-a)*(p-b)*(p-c)) # локальная переменная s return s # Использование функции SquareTriangle() s = SquareTriangle(5,4,5) if (s==None): print("The values of a, b, c is incorrect.") else: print("s color: #0000ff;">SquareTruangle() создаются две локальные переменные с именами p, s. Результат выполнения программы
s = 9.16515138991168