Синтаксис def: создание и вызов функции

Синтаксис def: создание и вызов функции Функции

Привет! В прошлой статье мы познакомились с функциями и узнали, зачем они нужны. Теперь пришло время разобрать синтаксис их создания и вызова.

В этой статье мы подробно разберём:

  • Ключевое слово def
  • Правила именования функций
  • Параметры и аргументы
  • Оператор return
  • Как вызывать функции
  • Разницу между параметрами и аргументами

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание функций (статья 1 в этом подменю)

Совет: Синтаксис функций нужно запомнить раз и навсегда. Это основа, на которой строится весь код.

Основная часть

2.1. Синтаксис создания функции

def имя_функции(параметры):
    # тело функции
    # код, который будет выполнен при вызове
    return результат

Обязательные элементы:

ЭлементЧто делает
defКлючевое слово (сокращение от define — определить)
имя_функцииИмя, по которому будем вызывать функцию
(параметры)Переменные, которые принимает функция (могут отсутствовать)
:Двоеточие после объявления
Отступ4 пробела для тела функции
returnВозвращает результат (может отсутствовать)

Создание функции

def say_hello():
    print("Привет, мир!")
[/code]

def greet(name):
    print(f"Привет, {name}!")

def add(a, b):
    return a + b

def is_even(n):
    return n % 2 == 0

Правила именования функций

ПравилоПример
Только буквы, цифры и _my_function
Не начинается с цифрыfunction_1
Не использовать ключевые словаdef нельзя как имя
Осмысленное названиеcalculate_sum
snake_caseget_user_data

Хорошие имена: get_agecalculate_areais_emptyprint_info

Плохие имена: funcfxdo_stuff

Совет: Имя функции должно описывать, что она делает. Глаголы в начале — хорошая практика.

Вызов функции

def greet(name):
    print(f"Привет, {name}!")

greet("Анна")   # Привет, Анна!
greet("Иван")   # Привет, Иван!

Важно: Не забывай ставить круглые скобки () при вызове.

greet          # Ничего не произойдёт (это просто ссылка на функцию)
greet("Анна")  # Правильно — вызов функции

Параметры vs Аргументы

ТерминЧто этоПример
ПараметрПеременная в определении функцииdef greet(name):
АргументКонкретное значение при вызовеgreet("Анна")

Совет: Эти термины часто путают, но разница простая: параметры — это как «места», аргументы — это «значения» для этих мест.

Функции с return

def square(x):
    return x ** 2

result = square(5)
print(result)   # 25
[/code]

def rectangle_area(length, width):
    return length * width

area = rectangle_area(10, 20)
print(area)   # 200

Функции без return

Если нет return, функция возвращает None.

def display_info(name, age):
    print(f"Имя: {name}")
    print(f"Возраст: {age}")

result = display_info("Анна", 25)
print(result)   # None

Несколько return

Функция может иметь несколько return в разных ветках.

def check_age(age):
    if age >= 18:
        return "Доступ разрешён"
    else:
        return "Доступ запрещён"

Вызов с разными аргументами

def greet(name, age):
    print(f"Привет, {name}! Тебе {age} лет.")

greet("Анна", 25)           # Позиционные аргументы
greet(age=25, name="Анна")  # Именованные аргументы

3. Задачи для закрепления

Задача 1. Напиши функцию cube(x), которая возвращает куб числа.

Задача 2. Напиши функцию is_positive(x), которая возвращает True, если число положительное.

Задача 3. Напиши функцию max_of_three(a, b, c), которая возвращает наибольшее из трёх чисел.

Задача 4. Напиши функцию rectangle_perimeter(length, width), которая возвращает периметр прямоугольника.

Задача 5. Напиши функцию is_leap_year(year), которая возвращает True, если год високосный.

Ответы:

Задача 1.

def cube(x):
    return x ** 3

Задача 2.

def is_positive(x):
    return x > 0

Задача 3.

def max_of_three(a, b, c):
    if a >= b and a >= c:
        return a
    elif b >= a and b >= c:
        return b
    else:
        return c

Задача 4.

def rectangle_perimeter(length, width):
    return 2 * (length + width)

Задача 5.

def is_leap_year(year):
    return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)

Нюансы и подводные камни

Порядок создания функций

Функцию нужно определить до её вызова.

# Правильно
def hello():
    print("Привет")

hello()

# Неправильно
hello()   # Ошибка! Функция ещё не определена
def hello():
    print("Привет")

Одни скобки vs двойные скобки

# Ошибка! Функция определена с двумя параметрами
def add(a, b):
    return a + b

add(5)        # Ошибка! Нужно два аргумента
add(5, 3, 1)  # Ошибка! Три аргумента
add(5, 3)     # Правильно

Имена переменных внутри функции

def func():
    x = 10
    print(x)

func()        # 10
print(x)      # NameError — x существует только внутри функции

Частые ошибки и как их избежать

Ошибка 1: Забыл двоеточие

def my_function()   # Ошибка!
    print("Hello")

Ошибка 2: Забыл return для возврата значения

def add(a, b):
    a + b          # Нет return → вернёт None

result = add(5, 3)
print(result)      # None

Ошибка 3: Неправильный порядок аргументов

def divide(a, b):
    return a / b

print(divide(2, 10))   # 0.2, а не 5

Ошибка 4: Путаница между параметрами и аргументами

Запомни: параметры — в определении, аргументы — при вызове.

Шпаргалка

Что нужноКак пишется
Создать функциюdef func():
Создать функцию с параметромdef func(param):
Создать функцию с несколькими параметрамиdef func(a, b):
Вернуть значениеreturn value
Вызвать функциюfunc()
Вызвать функцию с аргументамиfunc(1, 2)
Именованные аргументыfunc(a=1, b=2)

Заключение / Выводы

Сегодня мы узнали:

  • Синтаксис создания функции: def
  • Правила именования функций
  • Как вызывать функции
  • Разницу между параметрами и аргументами
  • Оператор return

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×