В этой части мы изучим функции — составные инструкции, которые могут принимать данные ввода, выполнять указания и возвращать данные вывода. Функции позволяют определять и повторно использовать определенную функциональность в компактной форме.
Вызвать функцию — значит передать ей входные данные, необходимые для выполнения и возвращения результата. Когда вы передаете функции входные данные, это называется передача параметра функции.
Функции в Python похожи на математические функции из алгебры. Например, в алгебре функция определяется как-то так:
f(x) = x * 2
Левая часть определяет функцию f , принимающую один параметр, x . А правая часть — это определение функции, которое использует переданный параметр x , чтобы произвести вычисление и вернуть результат. В этом случае значением функции является ее параметр, умноженный на два.
Как в Python функция записывается следующим образом: имя_функции(параметры_через_запятую) . Чтобы вызвать функцию, после ее имени нужно указать круглые скобки и поместить внутрь параметры, отделив каждый из них запятой. Для создания функций в Python выберите ее имя, определите параметры, укажите, что функция должна делать и какое значение возвращать.
Рекурсивные функции с текстовым выводом. ЕГЭ информатика 2021.
def имя_функции(параметры): определениие_функции
Математическая функция f(x) = x * 2 в Python будет выглядеть вот так:
def f(x): return x * 2
Ключевое слово def сообщает Python, что вы определяете функцию. После def вы указываете имя функции; оно должно отвечать тем же правилам, что и имена переменных. Согласно конвенции, в имени функции нельзя использовать заглавные буквы, а слова должны быть разделены подчеркиванием вот_так .
Как только вы присвоили своей функции имя, укажите после него круглые скобки. Внутри скобок должен содержаться один или несколько параметров.
После скобок ставится двоеточие, а новая строка начинается с отступа в четыре пробела. Любой код с отступом в четыре пробела после двоеточия является телом функции. В этом случае тело нашей функции состоит только из одной строки:
return x * 2
Ключевое слово return используется для определения значения, которое функция возвращает при вызове.
Чтобы вызвать функцию в Python, мы используем синтаксис имя_функции(параметры, через, запятую) .
Ниже описан вызов функции f из предыдущего примера с параметром 2 .
Консоль ничего не вывела. Можно сохранить вывод вашей функции в переменной и передать ее функции print .
# Продолжение# предыдущего примераdef f(x): return x * 2result = f(2)print(result) # 4
Вы можете сохранить результат, возвращаемый вашей функцией, в переменной и использовать это значение в программе позднее.
def f(x): return x + 1 z = f(4)if z == 5: print(«z равно 5»)else: print («z не равно 5»)
У функции может быть один параметр, несколько параметров или вообще их не быть. Чтобы определить функцию, не требующую параметров, оставьте круглые скобки пустыми.
def f(): return 1 + 1 result = f()print(result) # 2
Если хотите, чтобы функция принимала больше одного параметра, отделите каждый параметр в скобках запятой.
41 Рекурсия в Python. Рекурсивная функция Часть 1
def f(x, y, z): return x + y + z result = f(1, 2, 3)print(result) # 6
Наконец, функция не обязана содержать инструкцию return. Если функции нечего возвращать, она возвращает значение None .
def f(): z = 1 + 1result = f()print(result) # None
Обязательные и необязательные параметры ¶
Функция может принимать параметры двух типов. Те, что встречались вам до этого, называются обязательными параметрами. Когда пользователь вызывает функцию, он должен передать в нее все обязательные параметры, иначе Python сгенерирует исключение.
В Python есть и другой вид параметров — опциональные. Опциональные параметры определяются с помощью следующего синтаксиса: имя_функции(имя_параметра = значение_параметра) . Как и обязательные, опциональные параметры нужно отделять запятыми. Ниже приведен пример функции, в коде которой используется опциональный параметр.
def f(x=2): return x**x print (f()) # 4print (f(4)) # 16
Сначала функция вызывается без передачи параметра. Так как параметр необязательный, x автоматически становится равен 2 , и функция возвращает 4 .
Затем та же функция вызывается с параметром 4 . То есть x будет равен 4 и функция вернет 16 . Вы можете определить функцию, которая принимает как обязательные, так и опциональные параметры, но обязательные нужно определять в первую очередь.
def add(x, y=10): return x + yresult = add(2)print(result)
Источник: letpy.com
Уроки 43 — 44
§25. Функции
Представьте себе, что вы заказываете товар с доставкой по телефону или в интернет-магазине. Если говорить на языке программистов, вы вызываете вспомогательный алгоритм. Но, в отличие от процедуры, исполнитель этого алгоритма не только выполняет какие-то действия, но и возвращает результат — товар, который вам привозит курьер. Это второй тип вспомогательных алгоритмов (подпрограмм). Такие подпрограммы называются функциями.
Функция — это вспомогательный алгоритм, который возвращает результат (число, строку символов и др.).
Построим функцию, которая возвращает среднее арифметическое двух целых чисел.
Какой тип данных нужно использовать для хранения среднего арифметического двух целых чисел?
Функция принимает два параметра — исходные целые числа и возвращает результат — вещественное число:
В заголовке функции указывают тип результата — перед именем функции в алгоритмическом языке записано ключевое слово вещ. В языке Паскаль заголовок функции начинается словом function, а после скобок, в которых перечисляются параметры, через двоеточие записывают тип результата — real (вещественное число).
Используя дополнительные источники, выясните, что означает английское слово average, от которого образовано название функции Avg.
Результат функции (возвращаемое значение) нужно записать в специальную переменную. В алгоритмическом языке она называется знач, а в Паскале совпадает с именем функции.
При вызове функции нужно сказать, где сохранить полученный от неё результат. Например, можно записать его в отдельную переменную того типа, который возвращает функция:
Результат функции можно сразу вывести на экран:
вывод Avg(4,8) writeln(Avg(4,8));
Что будет выведено на экран в результате работы этого фрагмента программы?
вывод sr+Avg(7,ll) write(sr+Avg(7,11));
Функции можно передавать не только аргументы-константы, но также имена переменных и арифметические выражения:
Наша функция Avg возвращает вещественное число, поэтому вызовы этой функции можно применять везде, где разрешено использовать вещественное число, в том числе в арифметических выражениях, условных операторах и циклах. Например:
Найдите значения переменных а, b и х, при которых в результате работы этого фрагмента программы будет выведено сообщение «Да!»:
Найдите начальные значения переменных а, b и х, при которых этот цикл выполнится ровно четыре раза:
Следующая страница Функции в других языках программирования
Cкачать материалы урока
Источник: xn—-7sbbfb7a7aej.xn--p1ai
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. Вызов функции
После того, как функция создана (объявлена), можно осуществлять ее вызов. Вызов функции осуществляется с помощью ее имени и перечня параметров.
Например. Пусть объявлена следующая функция
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
5. Пример объявления и использования функции, которая получает 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
Источник: www.bestprog.net