Функции Python

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

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

Вот пример функции под названиемhelloчто печатает «Привет!»:

def hello():
    print('Hello!')

Это функцияопределение. Есть имя (hello) и тело, набор инструкций, который является частью, следующей за двоеточием, с отступом на один уровень справа.

Чтобы запустить эту функцию, мы должны ее вызвать. Это синтаксис для вызова функции:

hello()

Мы можем выполнить эту функцию один или несколько раз.

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

Функция может принимать один или несколько параметров:

def hello(name):
    print('Hello ' + name + '!')

В этом случае мы вызываем функцию, передающую аргумент

hello('Roger')

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

Аргумент может иметь значение по умолчанию, которое применяется, если аргумент не указан:

def hello(name='my friend'):
    print('Hello ' + name + '!')

hello() #Hello my friend!

Вот как мы можем принимать несколько параметров:

def hello(name, age):
    print('Hello ' + name + ', you are ' + str(age) + ' years old!')

В этом случае мы вызываем функцию, передавая набор аргументов:

hello('Roger', 8)

Параметры передаются по ссылке. Все типы в Python являются объектами, но некоторые из них неизменяемы, включая целые числа, логические значения, числа с плавающей запятой, строки и кортежи. Это означает, что если вы передадите их в качестве параметров и измените их значение внутри функции, новое значение не будет отражено за пределами функции:

def change(value):
    value = 2

val = 1 change(val)

print(val) #1

Если вы передадите объект, который не является неизменяемым, и измените одно из его свойств, изменение отразится снаружи.

Функция может возвращать значение, используяreturnутверждение. Например, в этом случае мы возвращаемnameимя параметра:

def hello(name):
    print('Hello ' + name + '!')
    return name

Когда функция соответствуетreturnоператор, функция завершается.

Мы можем опустить значение:

def hello(name):
    print('Hello ' + name + '!')
    return

Мы можем поместить оператор return внутри условного выражения, что является обычным способом завершения функции, если начальное условие не выполняется:

def hello(name):
    if not name:
        return
    print('Hello ' + name + '!')

Если мы вызовем функцию, передающую значение, которое оценивается какFalse, как и пустая строка, функция завершается до достиженияprint()утверждение.

Вы можете вернуть несколько значений, используя значения, разделенные запятыми:

def hello(name):
    print('Hello ' + name + '!')
    return name, 'Roger', 8

В этом случае вызовhello('Syd')возвращаемое значение - кортеж, содержащий эти 3 значения:('Syd', 'Roger', 8).


Больше руководств по питону: