Ключевое слово 
def в Python используется для определения (создания) новой функции.  Оно сообщает интерпретатору Python, что начинается блок кода, который будет представлять собой функцию.
  
  Разберем составляющие определения функции с помощью 
def:
  
    - def:  Собственно, само ключевое слово, указывающее на начало определения функции.
- имя_функции: Имя, которое вы даете функции.  Это имя будет использоваться для вызова функции позже.  Имя должно быть уникальным в пределах области видимости, где оно определено, и следовать правилам именования переменных в Python (например, начинаться с буквы или подчеркивания и состоять из букв, цифр и подчеркиваний).
- (параметры):  Необязательный список параметров (аргументов), которые функция может принимать. Параметры указываются в скобках и разделяются запятыми.  Если функция не принимает никаких параметров, скобки все равно обязательны.
- ::  Двоеточие, которое сигнализирует о начале блока кода функции.
- тело_функции:  Блок кода, который выполняется при вызове функции.  Тело функции должно быть с отступом (обычно 4 пробела) относительно строки- def.
- return выражение(необязательно):  Ключевое слово- returnиспользуется для возврата значения из функции.  Если- returnне указан, функция возвращает- Noneпо умолчанию.
  Пример:
  
    def greet(name):
      """Эта функция приветствует человека, переданного в качестве параметра."""
      print(f"Привет, {name}!")
    greet("Алиса")  # Вызов функции greet с аргументом "Алиса"
  
  В этом примере 
def greet(name): определяет функцию с именем 
greet, которая принимает один параметр 
name. Тело функции печатает приветствие с использованием переданного имени.