Функции

Функции — это такие изолированные участки кода, которые выполняются только тогда, когда это необходимо. Для того, чтобы указать интерпретатору Python, на те участки кода, которые надо выполнять обособленно, нужно определить их как функции. У функции есть имя (обычно), перечень аргументов, которые она принимает (иногда), и значение которое она возвращает (не часто).

Вы уже встречались с функциями sqrt(), len() и print(). Они все обладают общим свойством: они могут принимать аргументы (ноль, один или несколько), и они могут возвращать значение (хотя могут и не возвращать). Например, функция sqrt() принимает один аргумент и возвращает значение (корень числа). Функция print() принимает переменное число аргументов и ничего не возвращает.

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

def function_name():
    // какой-то изолированный код

А как сделать так, чтобы интерпретатор выполнил этот участок кода - эту функцию? Указание интерпретатору выполнять функцию, называется вызовом этой функции и в Python выглядит вот так:

function_name()

Разумеется, функцию надо сначала определить и только потом вызвать. Иначе попытка вызова неопределенной функции, даст ошибку:

>>> function_name()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'my_function' is not defined

Давайте определим простейшую функцию, а затем вызовем ее:

def function_print_hello_robot():
    print("Hello robot")
    return True

Функция имеет имя function_print_hello_robot, так как в круглых скобках ничего не написано, то никаких аргументов, она не принимает. И так как в конце текста функции (тела функции) написано return, она возвращает значение True

Вы уже слышали про отступы. После объявления имени функции и ее аргументов, после двоеточия, команды функции должны быть выделены отступом и TAB или пробелов, на равное расстояние от края.

def function_name():
<Пробелы>print("some text")

Или

def function_name():
< TAB >print("some text")

Теперь давайте вызовем ее и посмотрим, что она делает:

Hello robot

Функция просто печатает, Hello robot. А вот значение True, она не печатает. Она его возвращает. А куда? Ну если мы вызвали функцию просто указав ее имя, то никуда, а вот если мы присвоили то, что она возвращает какой-то переменной, то значение True, будет передано этой переменной.

def function_print_hello_robot():
    print("Hello robot")
    return True

a = function_print_hello_robot()
print(a)

И вот теперь вывод такой программы будет следующим:

Hello robot
True

Давайте разберемся с аргументами функции. Они передаются функции для использования в момент ее вызова, но для этого нам надо указать, как именно функция будет их использовать. Давайте перепишем нашу функцию:

def function_print_hello_robot(robot_name):
    print("Hello! From robot ",robot_name)
    return True

Теперь мы передаем в нашу функцию как аргумент некое имя робота, который и будет с нами здороваться.

Давайте вызовем эту функцию и передадим ей как аргумент имя одного знаменитого робота:

def function_print_hello_robot(robot_name):
    print("Hello! From robot ",robot_name)
    return True

function_print_hello_robot("Fyodor")

Как и ожидалось, вывод функции будет следующим:

Hello! From robot Fyodor!

results matching ""

    No results matching ""