Что такое def в Python?

Что такое def в Python?

Ключевое слово def в Python представляет определение функции. Иными словами, def сигнализирует: «Внимание, создается новая функция!». Соответственно, после def должно быть написано имя функции, а ниже — ее определение.

Что такое функция?

Функция — это одна, либо несколько команд, позволяющих реализовать какую-либо задачу. Что это значит? Давайте рассмотрим на примере: допустим, ученику Васе из 10 «А» нужно выполнить домашнее задание на понедельник. Так как у Васи в понедельник 4 предмета: математика, русский, физика и музыка, то его задачу можно сформулировать так:

Cделать домашнее задание на понедельник:

  Выполнить д/з по математике
  Выполнить д/з по русскому
  Выполнить д/з по физике
  Выполнить д/з по музыке
    

Каждый раз, когда Вася садится делать уроки на понедельник, он выполняет перечисленные выше 4 команды, объединенные в одну задачу. Эту задачу можно назвать функцией. Давайте теперь запишем функцию «сделать домашку на понедельник» по всем правилам Python: в названии будем использовать латинские символы, перед названием функции поставим def, после названия — скобки и двоеточие, а перед каждой операцией внутри функции добавим 1 отступ-табуляцию, либо 4 одинарных пробела:

Пример №1: def в определении простой функции:

# Определение функции:
def homework_on_monday():
	print("Сделать д/з по математике")
	print("Сделать д/з по русскому")
	print("Сделать д/з по физике")  
	print("Сделать д/з по музыке")

Теперь нет необходимости перечислять все предметы, по которым задано д.з. на понедельник — вместо этого можно в любом месте программы написать имя функции homework_on_monday() — и список заданий будет выведен на экран:

# Определение функции:
def homework_on_monday():
	print("Сделать д/з по математике")
	print("Сделать д/з по русскому")
	print("Сделать д/з по физике")  
	print("Сделать д/з по музыке")

# Вызов функции:
homework_on_monday()

Вывод на экран:

Сделать д/з по математике 
Сделать д/з по русскому 
Сделать д/з по физике 
Сделать д/з по музыке

Обратите внимание, что при вызове функции ключевое слово def не ставится — def необходимо ставить только перед описанием функции!

Мы привели пример довольно простой функции home_on_monday(), которая не принимает никаких параметров и не возвращает значений. Однако на этом примере наглядно понятна роль ключевого слова def. Предлагаю рассмотреть еще одну простую функцию, но уже с параметрами и возвращаемым значением:

Пример №2: def в функции сложения двух чисел

Нам нужна функция, которая будет вычислять сумму двух любых чисел, которые мы ей передадим. Так как числа заранее неизвестны, назовем их абстрактными x и y. А саму функцию сложения назовем summary(). Тогда определение этой функции будет выглядеть так:

# Определение функции сложения двух чисел:
def summary(x, y):
	result = x + y
	return result

После ключевого слова def мы пишем названием функции, в круглых скобках указываем параметры x и у. В строке result = x + y мы складываем x и у, после чего записываем полученное значение в переменную result и с помощью оператора return возвращаем полученный результат. Теперь чтобы получить сумму двух чисел 125 и 398 мы вызовем функцию summary(125, 398):

# Определение функции сложения двух чисел:
def summary(x, y):
	result = x + y
	return result

res1 = summary(125, 398)

# меняя аргументы функции,
# можно суммировать разные числа:
# например, сложим 45 и 9:
res2 = summary(45, 9)

# а теперь вызовем функцию
# с аргументами 25 и 34:
res3 = summary(25, 34)

print(res1, res2, res3)

Вывод на экран:

523 54 59

Обратите внимание, что ключевое слово def представляет определение функции summary(), поэтому оно не используется в последующем коде при вызовах функции summary()