Python function: Python — Functions — Tutorialspoint
Python. Урок 10. Функции в Python
Урок посвящен созданию функций в Python и работе с ними (передача аргументов, возврат значения и т.п.). Также рассмотрены lambda-функций, их особенности и использование.
По своей сути функции в Python практически ничем не отличаются от функций из других языков программирования. Функцией называют именованный фрагмент программного кода, к которому можно обратиться из другого места вашей программы (но есть lambda-функции, у которых нет имени, о них будет рассказано в конце урока). Как правило, функции создаются для работы с данными, которые передаются ей в качестве аргументов, также функция может формировать некоторое возвращаемое значение.
Для создания функции используется ключевое слово def, после которого указывается имя и список аргументов в круглых скобках. Тело функции выделяется также как тело условия (или цикла): четырьмя пробелами. Таким образом самая простая функция, которая ничего не делает, будет выглядеть так.
def fun(): pass
Возврат значения функцией осуществляется с помощью ключевого слова return, после которого указывается возвращаемое значение. Пример функции возвращающей единицу представлен ниже.
>>> def fun(): return 1 >>> fun() 1
Во многих случаях функции используют для обработки данных. Эти данные могут быть глобальными, либо передаваться в функцию через аргументы. Список аргументов определяется на этапе реализации и указывается в круглых скобках после имени функции. Например операцию сложения двух аргументов можно реализовать вот так.
>>> def summa(a, b): return a + b >>> summa(3, 4) 7
Рассмотрим еще два примера использования функции: вычисление числа Фибоначчи с использованием рекурсии и вычисление факториала с использованием цикла.
Вычисление числа Фибоначчи.
>>> def fibb(n): if n == 0: return 0 elif n == 1: return 1 elif n == 2: return 1 else: return fibb(n-1) + fibb(n-2) >>> print(fibb(10)) 55
Вычисление факториала.
>>> def factorial(n): prod = 1 for i in range(1, n+1): prod *= i return prod >>> print(factorial(5)) 120
Функцию можно присвоить переменной и использовать ее, если необходимо сократить имя. В качестве примера можно привести вариант использования функции вычисления факториала из пакета math.
>>> import math >>> f = math.factorial >>> print(f(5)) 120
Lambda-функция – это безымянная функция с произвольным числом аргументов и вычисляющая одно выражение. Тело такой функции не может содержать более одной инструкции (или выражения). Данную функцию можно использовать в рамках каких-либо конвейерных вычислений (например внутри filter(), map() и reduce()) либо самостоятельно, в тех местах, где требуется произвести какие вычисление, которые удобно “завернуть” в функцию.
>>> (lambda x: x**2)(5) 25
Lambda-функцию можно присвоить какой-либо переменной и в дальнейшем использовать ее в качестве имени функции.
>>> sqrt = lambda x: x**0.5 >>> sqrt(25) 5.0
Списки можно обрабатывать lambda-функциями внутри таких функций как map(), filter(), reduce(), о них мы ещё поговорим, а пока рассмотрим пример с map(). Функция map принимает два аргумента, первый – это функция, которая будет применена к каждому элементу списка, а второй – это список, который нужно обработать.
>>> l = [1, 2, 3, 4, 5, 6, 7] >>> list(map(lambda x: x**3, l)) [1, 8, 27, 64, 125, 216, 343]
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
<<< Python. Урок 9. Словари (dict) Python. Урок 11. Работа с исключениями>>>
Определение функций в Python. | DOCS-Python.ru
Функции в Python определяются с помощью инструкции def
, которое вводит определение функции. За ним должно следовать имя функции и заключенный в скобки список формальных параметров. Операторы, которые формируют тело функции, начинаются со следующей строки и должны иметь отступ.
def func_name(param): pass
- func_name — идентификатор, то есть переменная, которая при выполнении инструкции
def
связывается со значением в виде объекта функции. - param — это необязательный список формальных параметров, которые связываются со значениями, предоставляемыми при вызове функции. В простейшем случае функция может вообще не иметь параметров. Это означает, что при ее вызове она не получает никаких аргументов. В определении такой функций круглые скобки после ее имени остаются пустыми, такими же они должны оставаться при ее вызове.
Первым оператором тела функции может быть строка документации функции. Существуют инструменты, которые используют строки документации для автоматического создания интерактивной или печатной документации или для предоставления пользователю интерактивного просмотра кода. Хорошей практикой является включение строк документации в код, который вы пишете, поэтому сделайте это привычкой.
Определение функции не выполняет тело функции, а только вычисляет аргументы, если они присутствуют. Тело функции выполняется только при вызове.
# Определим функцию, которая печатает список чисел ряда Фибоначчи до n >>> def fib(n): ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... a, b = b, a+b ... print() ... >>> # Вызов функции ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
При вызове функции создается область видимости для хранения локальных переменных этой функции и все созданные переменные внутри функции сохраняют свое значение только в этом пространство имен. Когда функция завершает выполнение, это пространство имен уничтожается.
Определение функции может быть заключено в одно или несколько выражений декоратора.
Когда один или несколько параметров имеют выражение, говорят, что функция имеет значения параметров по умолчанию. Для параметра со значением по умолчанию соответствующий аргумент может быть опущен в вызове. Если параметр имеет значение по умолчанию, то все последующие параметры также должны иметь значение по умолчанию — это синтаксическое ограничение.
Значения параметров по умолчанию оцениваются слева направо при определении функции. Это означает, что эти выражение вычисляется один раз, когда функция определена, и что для каждого вызова используется одно и то же предварительно вычисленное значение. Это особенно важно понимать, когда параметр по умолчанию является изменяемым объектом, таким как список или словарь
Функции в Python являются объектами первого класса. Значение имени функции имеет тип, который распознается интерпретатором как определяемая пользователем функция. Это значение может быть присвоено другому имени, которое затем может также использоваться как функция:
>>> fib <function fib at 10042ed0> >>> f = fib >>> f(100) 0 1 1 2 3 5 8 13 21 34 55 89 >>>
Исходя из других языков, можно возразить, что fib
это не функция, а процедура, поскольку она не возвращает значение. На самом деле, даже функции без оператора return
возвращают значение, хотя и довольно скучное. Это значение называется None
(встроенное имя). Вывод значения None
обычно подавляется интерпретатором, если это единственное возвращаемое значение. Вы можете увидеть это, используя команду print()
:
>>> fib(0) >>> print(fib(0)) None >>>
Функция, которая возвращает список чисел ряда Фибоначчи, вместо того, чтобы печатать его:
>>> def fib2(n): # возврат ряда Фибоначчи до n ... """Возвращает список, содержащий ряд Фибоначчи до n.""" ... result = [] ... a, b = 0, 1 ... while a < n: ... result.append(a) ... a, b = b, a+b ... return result ... >>> f100 = fib2(100) # вызов функции >>> f100 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] >>>
Этот пример, демонстрирует некоторые новые возможности Python:
- Оператор
return
возвращает значение из функции.return
без аргумента возвращаетNone
. Функции, у которыхreturn
не определен, также возвращаетNone
. - Оператор
result.append(a)
вызывает метод объекта спискаresult
. Метод — это функция, которая «принадлежит» объекту и имеет имя obj.methodname, где obj есть некоторый объект (может быть выражение), и methodname имя метода, которое определяется типом объекта. Разные типы определяют разные методы. Методы разных типов могут иметь одно и то же имя, не вызывая двусмысленности. Можно определить свои собственные типы объектов и методы, используя классы. Метод append(), показанный в примере, определен для объектов списка. Он добавляет новый элемент в конец списка.
Встроенные функции Python. | DOCS-Python.ru
Интерпретатор Python имеет ряд встроенных функций и классов, которые всегда доступны. Они перечислены здесь в алфавитном порядке, с их описанием и примерами применения в коде.
Функция abs() в Python.
Функция abs() преобразует целое число или число с плавающей запятой в его абсолютное значение.
Функция all() в Python.
Функция all() возвращает значение True , если все элементы в итераторе истинны, в противном случае она возвращает значение False
Функция any() в Python.
Функция any() возвращает True, если какой — либо (любой) элемент в итерируемом объекте True, в противном случае any() возвращает значение False.
Функция ascii() в Python.
Функция ascii() возвращает строку, содержащую печатаемое представление объекта(читаемую версию) с экранированными не-ASCII символами
Функция bin() в Python.
Функция bin() преобразует целое число в двоичную строку с префиксом 0b.
Класс bool() в Python.
Класс bool() возвращает логическое значение указанного объекта.
Функция breakpoint() в Python.
Функция останова breakpoint() обеспечивает удобство использования отладчика, поскольку нам не нужно явно импортировать pdb модуль, а так же писать дополнительный код, чтобы войти в отладчик.
Класс bytearray() в Python.
Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Класс bytes() в Python.
Класс bytes() возвращает байтовый объект bytes, который является неизменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Функция callable() в Python.
Функция callable() возвращает True , если указанный объект вызываемый, в противном случае она возвращает значение False.
Функция chr() в Python.
Функция chr() вернет строку, представляющую символ, соответствующий переданному в качестве аргумента целому числу из таблицы символов Unicode. Допустимый диапазон аргументов — от 0 до 1114111
Декоратор classmethod в Python.
Делает указанную функцию методом класса. Метод класса может быть вызван либо для класса (например, C.f()), либо для экземпляра (например, C().f()).
Функция compile() в Python.
Функция compile() возвращает переданный, в качестве аргумента источник, в виде объекта кода, готового к выполнению.
Класс complex() в Python.
Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
Функция delattr() в Python.
Функция delattr() удаляет из объекта указанный атрибут, если объект позволяет это сделать.
Функция dict() в Python.
Функция dict() создаст словарь, инициализированный из необязательного позиционного аргумента и возможно пустого набора ключевых аргументов.
Функция dir() в Python.
Функция dir(), вызванная без аргумента, возвращает список имен в текущей локальной области, а вызванная с аргументом попытается вернуть список допустимых атрибутов для указанного объекта.
Функция divmod() в Python.
Функция divmod() возвращает кортеж, содержащий частное и остаток. Не поддерживает комплексные числа. Со смешанными типами операндов применяются правила для двоичных арифметических операторов.
Функция enumerate() в Python.
Функция enumerate() возвращает кортеж, содержащий пары (‘счётчик’, ‘элемент’) для элементов указанного объекта.
Функция eval() в Python.
Функция eval() выполняет строку-выражение, переданную ей в качестве обязательного аргумента и возвращает результат выполнения этой строки.
Функция exec() в Python.
Функция exec() поддерживает динамическое выполнение кода Python. Передаваемый в качестве аргумента объект должен быть либо строкой, либо объектом кода.
Функция filter() в Python.
Функция filter() фильтрует элементы переданного объекта при помощи пользовательской функции. Принимает в качестве аргументов пользовательскую фильтрующую функцию и объект, элементы которого следует отфильтровать.
Класс float() в Python.
Класс float() выполняет преобразование переданного числа или строки в число с плавающей запятой (в тип float)
Функция format() в Python.
Функция format() преобразует переданное значение в отформатированную строку, в соответствии с спецификацией формата Mini-Language
Класс frozenset() в Python.
Класс frozenset() преобразует строку или любую последовательность(итерацию) в неизменяемое множество frozenset
Функция globals() в Python.
Функция globals() возвращает словарь со значениями переменных, представляющий текущую глобальную область видимости модуля.
Функция hasattr() в Python.
Функция hasattr() проверяет существование атрибута в указанном объекте. Возвращает True, если атрибут с таким именем существует, иначе False.
Функция help() в Python.
Функция help() вызывает встроенную справочную систему. Эта функция предназначена для интерактивного использования.
Функция hex() в Python.
Функция hex() преобразует целое число в шестнадцатеричную строку с префиксом 0x.
Функция id() в Python.
Функция id() возвращает уникальный идентификатор для указанного объекта.
Функция input() в Python.
Функция input() позволяет обеспечить ввод пользовательских данных с консоли. Считывает строку данных, полученную с устройства ввода
Класс int() в Python.
Класс int() возвращает целочисленный объект, созданный из числа или строки, или возвращает 0, если аргументы не заданы.
Функция isinstance() в Python.
Функция isinstance() вернет True, если проверяемый объект является экземпляром указанного класса (классов), или прямым, косвенным или виртуальным подклассом от него.
Функция issubclass() в Python.
Функция issubclass() возвращает True, если указанный класс является подклассом (прямым, косвенным или виртуальным) указанного класса (классов).
Функция len() в Python.
Функция len() возвращает длину (количество элементов) в объекте. Аргумент может быть последовательностью или коллекцией
Класс list() в Python.
Класс list() создает или преобразует переданный объект, поддерживающий итерирование, в список, изменяемую последовательность с упорядоченными элементами. Элементы в списках упорядочены по очередности их добавления.
Функция locals() в Python.
Функция locals() обновляет и возвращает словарь с переменными и их значениями из текущей локальной области видимости
Функция map() в Python.
Функция map() выполняет пользовательскую функцию для каждого элемента последовательности, коллекции или итератора.
Класс memoryview() в Python.
Класс memoryview() возвращает ссылку на буфер обмена памяти, в которой находится переданный в качестве аргумента объект. Объект obj должен поддерживать протокол буфера обмена.
Функция next() в Python.
Функция next() возвращает следующий элемент итератора, вызвав его метод __next__().
Класс object() в Python.
Встроенный класс object() возвращает новый безликий объект и является базой для всех классов
Функция oct() в Python.
Функция oct() преобразует целое число в восьмеричную строку с префиксом 0o.
Функция open() в Python.
Функция open() открывает файл для чтения или записи при помощи файлового потока . Если файл не может быть открыт, бросается исключение OSError.
Функция ord() в Python.
Функция ord() для символа x вернет число, из таблицы символов Unicode представляющее его позицию. Функция ord() обратная chr().
Функция pow() в Python.
Функция pow() возвращает результат возведения числа base в степень exp, с опциональным делением по модулю mod.
Функция print() в Python.
Функцию print() выводит объекты в текстовый поток, отделяя их друг от друга ключевым аргументом sep и заканчивая поток аргументом end.
Класс property() в Python.
Класс property() позволяет использовать методы в качестве вычисляемых свойств объектов.
Класс range() в Python.
Класс range() генерирует арифметические прогрессии чисел с заданным шагом
Функция repr() в Python.
Функция repr() вернет строку, содержащую печатаемое формальное представление объекта.
Функция reversed() в Python.
Функция reversed() возвращает обратный итератор, то есть возвращает итератор, который перебирает элементы оригинала в обратном порядке. Функция reversed() не создает копию и не изменяет оригинал последовательности.
Функция round() в Python.
Функция round() вернет число, округленное до точности ndigits после десятичной точки. Если аргумент ndigits опущен или None, то вернет ближайшее целое число.
Класс set() в Python.
Класс set() создает или преобразует переданный объект iterable, поддерживающий итерирование, в новое множество set. Если аргумент iterable не указан, будет создано пустое множество.
Функция setattr() в Python.
Функция setattr() устанавливает значение атрибута указанного объекта по его имени.
Класс slice() в Python.
Класс slice() вернет срез/часть итерируемого объекта, которая будет следовать шаблону, указанному в аргументах.
Функция sorted() в Python.
Функция sorted() вернет новый отсортированный список из итерируемых элементов. Функция имеет два необязательных аргумента, которые должны быть указаны в качестве аргументов ключевых слов.
Класс str() в Python.
Класс str() выполнит преобразование и вернет строковую версию объекта.
Функция sum() в Python.
Функция sum(), начинает суммирование элементов последовательности с начального значения start, сложение происходит лева на право и в результате возвращает их сумму.
Функция super() в Python.
Функция super(), возвращает объект объект-посредник, который делегирует вызовы метода родительскому или родственному классу, указанного типа. Это полезно для доступа к унаследованным методам, которые были переопределены в классе.
Класс tuple() в Python.
Класс tuple() создает новый кортеж из итерируемого объекта, элементы которого идут в том же порядке, что и элементы переданного в качестве аргумента объекта
Класс type() в Python.
Класс type() с одним аргументом object возвращает тип объекта. Класс type() с тремя аргументами вернет объект нового типа. Это по сути динамическая форма заявления class
Функция vars() в Python.
Функция vars() вернет атрибут __dict__ — словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом __dict__.
Функция zip() в Python.
Функцию zip() создает итератор кортежей, который объединяет элементы из каждой из переданных последовательностей.
Функция __import__() в Python.
Функция __import__() импортирует имя модуля name, потенциально используя данные значений переменных глобальной globals и локальной locals областей видимости, чтобы определить, как интерпретировать имя name в контексте пакета.
Функция | Описание |
---|---|
abs () | Возвращает абсолютное значение числа |
all () | Возвращает True, если все элементы в повторяемом объекте истинны |
any () | Возвращает True, если любой элемент в итерируемый объект истинен |
ascii () | Возвращает читаемую версию объекта.Заменяет символы без ascii на escape-символ |
bin () | Возвращает двоичную версию числа |
bool () | Возвращает логическое значение указанного объекта |
bytearray () | Возвращает массив байтов |
bytes () | Возвращает объект байтов |
callable () | Возвращает True, если указанный объект является вызываемым, в противном случае — False |
chr () | Возвращает символ из указанного Код Юникода. |
classmethod () | Преобразует метод в метод класса |
compile () | Возвращает указанный источник как объект, готовый к выполнению |
complex () | Возвращает комплексное число |
delattr () | Удаляет указанный атрибут (свойство или метод) из указанного объекта |
dict () | Возвращает словарь (массив) |
dir () | Возвращает список свойства и методы указанного объекта |
divmod () | Возвращает частное и остаток при делении аргумента 1 на аргумент 2 |
enumerate () | Принимает коллекцию (например,грамм. кортеж) и возвращает его как объект перечисления |
eval () | Оценивает и выполняет выражение |
exec () | Выполняет указанный код (или объект) |
filter () | Используйте функцию фильтра для исключения элементов в повторяемом объекте |
float () | Возвращает число с плавающей запятой |
format () | Форматирует указанное значение |
frozenset () | Возвращает Frozenset объект |
getattr () | Возвращает значение указанного атрибута (свойства или метода) |
globals () | Возвращает текущую глобальную таблицу символов в виде словаря |
hasattr () | Возвращает Истинно, если указанный объект имеет указанный атрибут (свойство / метод) |
hash () | Возвращает хэш-значение спецификации d object |
help () | Выполняет встроенную справочную систему |
hex () | Преобразует число в шестнадцатеричное значение |
id () | Возвращает идентификатор объекта |
input () | Разрешение пользовательского ввода |
int () | Возвращает целое число |
isinstance () | Возвращает True, если указанный объект является экземпляром указанного объекта |
issubclass () | Возвращает True, если указанный класс является подклассом указанного объекта |
iter () | Возвращает объект итератора |
len () | Возвращает длину объекта |
list () | Возвращает список |
locals () | Возвращает обновленный словарь текущей локальной таблицы символов |
map () | Возвращает указанный итератор с указанной функцией, примененной к каждому элементу |
max () | Возвращает самый большой элемент в итерации |
memoryview () | Возвращает объект просмотра памяти |
min ( ) | Возвращает наименьший элемент в итерируемом объекте |
next () | Возвращает следующий элемент в итерируемом объекте |
() | Возвращает новый объект |
oct () | Преобразует число в восьмеричное |
open () | Открывает файл и возвращает объект файла |
ord () | Преобразование целого числа представление Unicode указанного символа |
pow () | Возвращает значение x в степени y |
print () | Печатает на стандартное устройство вывода |
property () | Получает, устанавливает, удаляет свойство |
range () | Возвращает последовательность чисел, начиная с 0 и увеличивается на 1 (по умолчанию) |
repr () | Возвращает читаемую версию объекта |
reverse () | Возвращает обратный итератор |
round () | Округляет числа |
set () | Возвращает новый объект набора |
setattr () | Устанавливает атрибут (свойство / метод) объекта |
slice () | Возвращает объект среза |
sorted () | Возвращает отсортированный список |
Преобразует метод в статический метод | |
str () | Возвращает строковый объект |
sum () | Суммирует элементы итератора |
super () | Возвращает объект, представляющий родительский класс |
tuple () | Возвращает кортеж |
type () | Возвращает тип объекта |
vars () | Возвращает свойство __dict__ для объект |
zip () | Возвращает итератор от двух или более итераторов |
Вызов, отступ, аргументы и возвращаемые значения
- Главная страница
Тестирование
- Назад Тестирование
- BugZilla
- Огурец
- Тестирование базы данных
- Тестирование ETL
90 417 Jmeter
- JIRA
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- QTP 904 904 904 904 SAP Testing
- Selenium
- SoapUI
- Управление тестированием
- TestLink
904
SAP
- Назад
- ABAP
- 9017 9018 BASIN 9018 9018 BIS
- CO
- Назад
- CRM
- Crystal Reports
- FICO
- HANA
- HR
- MM
- QM
- Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер по решениям 000
- Успешные факторы
- SAP Tutorials Web
- Назад
- Apache
- AngularJS
- ASP. Нетто
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- MS SQL
- Linux 90D js
- Perl
MS SQL
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala Назад
- SQL Server 904 904 904 904 904 904 SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
Обязательно изучите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Бизнес-аналитик
- Создание веб-сайта
- Облачные вычисления
- COBOL
- Дом
- Блог
- Функции Python
901 901 904 9018 904 904 904 904 904 904 904 904 904 904 904 904 904 904
Функции Python — ThePythonGuru. com
(Спонсоры) Начните изучать Python с помощью DataCamp’s
бесплатный вводный курс по Python.Изучите науку о данных, выполняя интерактивные задания по программированию и просматривая видео от опытных инструкторов.
Начать сейчас!
Обновлено 7 января 2020 г.Функции — это повторно используемые части кода, которые помогают нам организовать структуру кода.Мы создаем функции, чтобы мы могли многократно запускать набор операторов в программе, не повторяя себя.
Создание функций
Python использует ключевое слово def для запуска функции, вот синтаксис:
def имя_функции (arg1, arg2, arg3, .... argN): # заявление внутри функции
примечание:
Все операторы внутри функции должны иметь одинаковый отступ. Функция может принимать ноль или более аргументов (также известных как параметры), заключенных в круглые скобки. Вы также можете опустить тело функции, используя ключевое слово
pass
, например:Давайте посмотрим на примере.
сумма по умолчанию (начало, конец): результат = 0 для i в диапазоне (начало, конец + 1): результат + = я печать (результат) сумма (10, 50)
Ожидаемый результат:
Выше мы определяем функцию под названием
sum ()
с двумя параметрамиstart
иend
.Функция вычисляет сумму всех чисел отначало
доконец
.Функция с возвращаемым значением.
Вышеупомянутая функция просто выводит результат на консоль. Что, если мы хотим присвоить результат переменной для дальнейшей обработки? Затем нам нужно использовать оператор
return
. Операторreturn
отправляет результат обратно вызывающей стороне и закрывает функцию.сумма по умолчанию (начало, конец): результат = 0 для i в диапазоне (начало, конец + 1): результат + = я вернуть результат s = сумма (10, 50) печать (и)
Ожидаемый результат:
Здесь мы используем оператор
return
, чтобы вернуть сумму чисел и присвоить ее переменнойs
.Вы также можете использовать оператор
return
без возвращаемого значения.сумма по умолчанию (начало, конец): если (начало> конец): print ("начало должно быть меньше конца") return # здесь мы не возвращаем никакого значения, поэтому возвращается специальное значение None результат = 0 для i в диапазоне (начало, конец + 1): результат + = я вернуть результат s = сумма (110, 50) печать (и)
Ожидаемый результат:
начало должно быть меньше конца Никто
В python, если вы явно не возвращаете значение из функции, всегда возвращается специальное значение
None
. Возьмем пример:def test (): # тестовая функция только с одним оператором я = 100 печать (тест ())
Ожидаемый результат:
Как видите, функция
test ()
явно не возвращает никакого значения, поэтомуNone
не возвращается.Глобальные переменные и локальные переменные
Глобальные переменные : переменные, которые не связаны с какой-либо функцией, но могут быть доступны как внутри, так и вне функции, называются глобальными переменными.
Локальные переменные : Переменные, объявленные внутри функции, называются локальными переменными.
Давайте рассмотрим несколько примеров, чтобы проиллюстрировать эту точку зрения.
Пример 1 :
global_var = 12 # глобальная переменная def func (): local_var = 100 # это локальная переменная print (global_var) # вы можете получить доступ к глобальным переменным в боковой функции func () # вызов функции func () #print (local_var) # вы не можете получить доступ к local_var вне функции, потому что как только функция завершается, local_var уничтожается
Ожидаемый результат:
Пример 2:
xy = 100 def cool (): xy = 200 # xy внутри функции полностью отличается от xy вне функции print (xy) # это напечатает локальную переменную xy i. e 200 прохладно() print (xy) # это напечатает глобальную переменную xy, т.е. 100
Ожидаемый результат:
Вы можете привязать локальную переменную в глобальной области, используя ключевое слово
global
, за которым следуют имена переменных, разделенные запятой (,
).t = 1 def приращение (): global t # теперь t внутри функции такое же, как t вне функции т = т + 1 print (t) # Отображает 2 инкремент () print (t) # Отображает 2
Ожидаемый результат:
Обратите внимание, что вы не можете присвоить значение переменной при объявлении их глобальными.
1 2 3 4 5 6 7 8 9 10 11 12
t = 1 def приращение (): #global t = 1 # это ошибка глобальный т t = 100 # это нормально т = т + 1 print (t) # Отображает 101 инкремент () print (t) # Отображает 101
Ожидаемый результат:
На самом деле нет необходимости объявлять глобальные переменные вне функции. Вы можете объявить их глобальными внутри функции.
def foo (): global x # x объявлен как глобальный, поэтому он доступен вне функции х = 100 foo () печать (х)
Ожидаемый результат:
100Аргумент со значениями по умолчанию
Чтобы указать значения аргумента по умолчанию, вам просто нужно присвоить значение с помощью оператора присваивания.
def func (i, j = 100): печать (я, j)
Вышеупомянутая функция имеет два параметра:
i
иj
. Параметрj
имеет значение по умолчанию100
, это означает, что мы можем опустить значениеj
при вызове функции.func (2) # здесь значение j не передается, поэтому будет использоваться значение по умолчанию
Ожидаемый результат:
Вызовите функцию
func ()
еще раз, но на этот раз укажите значение параметраj
.func (2, 300) # здесь 300 передается как значение j, поэтому значение по умолчанию не будет использоваться
Ожидаемый результат:
Аргументы ключевого слова
Есть два способа передать аргументы методу: позиционные аргументы и аргументы ключевого слова. Мы уже видели, как работают позиционные аргументы в предыдущем разделе. В этом разделе мы узнаем об аргументах ключевых слов.
Аргументы ключевого слова позволяют передавать каждый аргумент, используя пары имя-значение, например,
имя = значение
.Возьмем пример:def named_args (имя, приветствие): печать (приветствие + "" + имя)
named_args (name = 'jim', приветствие = 'Hello') named_args (приветствие = 'Hello', name = 'jim') # вы тоже можете передавать аргументы таким образом
Ожидаемое значение:
Смешивание позиционных аргументов и аргументов ключевого слова
Можно смешивать позиционные аргументы и аргументы ключевого слова, но этот позиционный аргумент должен стоять перед любыми аргументами ключевого слова. Давайте посмотрим на это на примере.
def my_func (a, b, c): печать (a, b, c)
Вы можете вызвать указанную выше функцию следующими способами.
# использование только позиционных аргументов my_func (12, 13, 14) # здесь первый аргумент передается как позиционные аргументы, а два других как аргумент ключевого слова my_func (12, b = 13, c = 14) # то же, что и выше my_func (12, c = 13, b = 14) # это неверно, так как позиционный аргумент должен стоять перед любым аргументом ключевого слова # my_func (12, b = 13, 14)
Ожидаемый результат:
12 13 14 12 13 14 12 14 13
Возврат нескольких значений из функции
Мы можем вернуть несколько значений из функции с помощью оператора return, разделив их запятой (
,
).Несколько значений возвращаются в виде кортежей.def больше (a, b): если a> b: возврат а, б еще: возврат б, а s = больше (12, 100) печать (и) печать (тип (ы))
Ожидаемый результат:
(100, 12) <класс 'кортеж'>
В следующем посте мы узнаем о Python Loops
Другие обучающие программы (спонсоры)
Этот сайт щедро поддерживается
DataCamp.DataCamp предлагает интерактивные онлайн
Учебники по Python
для науки о данных. Присоединяйтесь к более чем миллиону других учеников и получите
начал изучать Python для науки о данных сегодня!Пожалуйста, включите JavaScript, чтобы просматривать комментарии от Disqus.
Вложенные функции Python
Что такое вложенная функция?
Функции являются одними из «первоклассных граждан» Python, что означает, что функции находятся на том же уровне, что и другие объекты Python, такие как целые числа, строки, модули и т. Д.Их можно создавать и уничтожать динамически, передавать другим функциям, возвращать как значения и т. Д.
Python поддерживает концепцию «вложенной функции» или «внутренней функции», которая представляет собой просто функцию, определенную внутри другой функции. В остальной части статьи мы будем использовать слова «внутренняя функция» и «вложенная функция» как синонимы.
Существуют различные причины, по которым нужно создать функцию внутри другой функции. Внутренняя функция может получить доступ к переменным в пределах области видимости.В этой статье мы исследуем различные аспекты внутренних функций в Python.
Определение внутренней функции
Чтобы определить внутреннюю функцию в Python, мы просто создаем функцию внутри другой функции, используя ключевое слово Python
def
. Вот пример:def function1 (): # внешняя функция print ("Привет из внешней функции") def function2 (): # внутренняя функция print ("Привет из внутренней функции") функция2 () функция1 ()
Выход
Привет от внешней функции Привет из внутренней функции
В приведенном выше примере
function2 ()
определена внутриfunction1 ()
, что делает ее внутренней функцией.