Функция. Понятие функции. Общая форма. Примеры объявления и использования функций
Содержание
- 2. Инструкция def. Общая форма объявления функции в Python. Создание функции
- 3. Вызов функции
- 4. Пример объявления и использования функции без параметров
- 5. Пример объявления и использования функции, которая получает 1 параметр
- 6. Пример объявления и использования функции, которая получает параметр и возвращает результат
- 7. Пример объявления функции в инструкции if. Реализация альтернативы
- 8. Полиморфизм в функциях. Примеры
- 9. Использование локальных переменных внутри функций. Пример
Поиск на других ресурсах:
1. Что такое функция? Определение функции. Преимущества применения функций
Функция – это средство (способ) группирования фрагментов программного кода таким образом, что этот программный код может вызваться многократно с помощью использования имени функции.
Использование функций в программах на Python дает следующие взаимосвязанные преимущества:
- избежание повторения одинаковых фрагментов кода в разных частях программы;
- уменьшение избыточности исходного кода программы. Как следствие, уменьшение логических ошибок программирования;
- улучшенное восприятие исходного кода программы в случаях, где вместо блоков многочисленных инструкций (операторов) вызываются имена готовых протестированных функций. Это, в свою очередь, также уменьшает количество ошибок;
- упрощение внесения изменений в повторяемых блоках кода, организованных в виде функций. Достаточно внести изменения только в тело функции, тогда во всех вызовах данной функции эти изменения будут учтены;
- с помощью функций удобно разбивать сложную систему на более простые части. Значит, функции – удобный способ структурирования программы;
- уменьшение трудозатрат на программирование, а, значит, повышение производительности работы программиста.
В языке программирования Python для функций характерны следующие особенности:
- функции могут возвращать результат;
- функции могут получать входные параметры, влияющие на полученный результат.
⇑
2. Инструкция def. Общая форма объявления функции в Python. Создание функции
Чтобы функцию можно было использовать в программе, ее нужно создать (объявить). В языке Python создание (или объявление) функции выполняется с помощью инструкции def. Если интерпретатор достигает инструкции def, он создает новый объект функции и связывает упакованный код функции с ее именем.
Функция может возвращать или не возвращать значение. Если функция не возвращает значения, то считается, что она автоматически возвращает объект None, который игнорируется. В этом случае инструкция return необязательна. Общая форма такой функции следующая:
def <name>(arg1, arg2, ..., argN):
<statement1>
<statement2>
...
<statementN>
где
- name – имя функции, с которым будет связан объект функции и список параметров (arg1, arg2, …, argN). Объект функции получает имя name и создается во время выполнения (в Python нет времени компиляции);
- arg1, arg2, argN – список параметров, которые может получать функция. Функция также может быть без параметров;
- statement1, statement2, statementN – одна или несколько инструкций, которые следуют с отступлениями относительно def.
Если функция возвращает значение, то ее общая форма следующая
def <name>(arg1, arg2, ..., argN): <statement1> <statement2> ... <statementN> return <value>
здесь
- name – имя функции;
- arg1, arg2, …, argN – параметры функции (если такие есть);
- statement1, statement2, statementN – инструкции, которые реализованы в теле функции;
- value – значение, возвращаемое функцией.
Определение функции с помощью инструкции def может быть реализовано внутри других инструкций, например, внутри инструкции if.
⇑
3. Вызов функции
После того, как функция создана (объявлена), можно осуществлять ее вызов. Вызов функции осуществляется с помощью ее имени и перечня параметров.
Например. Пусть объявлена следующая функция
def Mult2(a, b): return a*b
тогда ее вызов может быть, например, таким
res = Mult2(7,9)
В результате, значение res = 63.
Интерпретатор, встретив инструкцию def выполняет следующие действия:
- создает новый объект функции с именем Mult2;
- упаковывает программный код функции и связывает объект с именем Mult2;
- вызывает функцию в программе.
Если указать
res = Mult2('abc',3)
то res = ‘abcabcabc’.
⇑
4. Пример объявления и использования функции без параметров
Ниже приведен пример объявления и использования функции, которая не содержит параметров. Функция носит имя Hello и выводит на экран текст «Hello world!» 3 раза.
# Функции без параметров. # Объявить функцию с именем Hello(), # которая выводит "Hello world!" на экран. def Hello(): print("Hello world!") # Вызвать функцию Hello() в цикле while i=0 while i<3: Hello() i=i+1
⇑
5. Пример объявления и использования функции, которая получает 1 параметр
Ниже приведен пример создания и использования функции Print3(), которая получает один параметр и выводит его на экран 3 раза.
# Объявить функцию с именем Print5(), # которая выводит значение параметра t на экран 3 раза def Print3(t): i=0 while i<3: print(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. Пример объявления и использования функции, которая получает параметр и возвращает результат
Ниже приводится пример функции, которая получает параметр и возвращает результат. Функция осуществляет реверсирование строки.
# Функция, реверсирующая строку def Reverse(s): s2 = '' i = len(s)-1 while i>=0: s2 = s2 + s[i] i = i-1 return s2 # Вызов функции Reverse() s1 = "abcdef" s2 = Reverse(s1) # s2 = 'fedcba' print("s2 = ", s2)
Результат работы программы
s2 = fedcba
⇑
7. Пример объявления функции в инструкции if. Реализация альтернативы
Определение функции с помощью средства def может быть вложено в другую инструкцию, например, инструкцию if. В этом случае возникает альтернатива при выполнении программы.
Пример. В примере на основании введенного значения n создается функция Fn(), которая вычисляет тригонометрическое выражение по следующему правилу:
- sin(x)*cos(x), если n==1;
- sin(x2)+cos(x), если n==2;
- 1-sin(x), в противном случае.
Затем эта функция вызывается для заданного значения x.
# По заданному значению n определить функцию Fn(), # которая вычисляет: # sin(x)*cos(x), если n==1 # sin(x*x)+cos(x), если n==2 # 1-sin(x), в противном случае # Импортировать математическую библиотеку import math # Ввести значение n n = int(input('n = ')) x = float(input('x = ')) # Определить код функции Fn() if (n==1): def Fn(x): print("n==1. res = sin(x)*cos(x).") return math.sin(x)*math.cos(x) else: if (n==2): def Fn(x): print("n==2. res = sin(x*x)+cos(x)") return math.sin(x*x)+math.cos(x) else: def Fn(x): print("n==3. res = 1-sin(x)") return 1-math.sin(x) # Вызов функции Fn() res = Fn(x) print("res = ", res)
Результат выполнения программы
n = 3 x = 1.2 n==3. res = 1-sin(x) res = 0.06796091403277371
⇑
8. Полиморфизм в функциях. Примеры
В языке Python все данные представлены объектами. Объекты определяют синтаксическое содержание операции. Поддержка операцией разных типов объектов обеспечивается благодаря полиморфизму. Полиморфизм – зависимость содержания операции от типа объектов к которым она применяется. Полиморфизм в функции проявляется при передаче параметров в функцию. Параметры функции есть объекты, которые могут быть разных типов. Параметры функции используются в операциях, которые могут оперировать разными типами. В языке Python этот процесс называется динамической типизацией.
Например, операция * может применяться как к числам, так и к строкам. В случае с числами эта операция означает умножение. В случае со строками эта операция позволяет повторить строку заданное количество раз.
Пример 1. Демонстрируется функция Mult(), которая получает два параметра a, b. Для полученных параметров выполняется операция *.
# Полиморфизм в функциях # Функция Mult() def Mult(a,b): return a*b # Вызов функции Mult() для разных типов объектов # 1. Для чисел x = 8 y = 5 z = Mult(x,y) # z = 40 # 2. Для строк s1 = "Hello " n = 3 s2 = Mult(s1,n) # s2 = 'Hello Hello Hello'
Пример 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)<c) or ((b+c)<a) or ((a+c)<b)): 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 = ", s)
В функции SquareTruangle() создаются две локальные переменные с именами p, s.
Результат выполнения программы
s = 9.16515138991168
⇑