Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Освоение функций Python: определение, вызов, отступы, аргументы и возвращаемые значения

Освоение функций Python: определение, вызов, отступы, аргументы и возвращаемые значения

Функции — это строительные блоки любого Python-приложения. Они инкапсулируют повторно используемую логику, помогают соблюдать принцип DRY (Don't Repeat Yourself) и делают программы легче для чтения, тестирования и поддержки. В этом руководстве мы подробно разберем каждый шаг, необходимый для написания, вызова и отладки функций в Python 3, а также коснемся отличий, которые вы можете встретить в Python 2.

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

Функция Python — это автономный блок кода, который выполняется при вызове. Её можно представить как мини-программу, выполняющую одну чётко определённую задачу, которую можно многократно использовать. Хотя Python поставляется со множеством встроенных функций (например, print(), input()), вы можете создавать свои собственные, наделяя код способностью развиваться и масштабироваться.

Определение и вызов функции

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

def greet():
    print("Hello, Python!")

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

Вывод: Hello, Python!

Почему важны отступы

Python не использует фигурные скобки или явные операторы begin/end. Вместо этого область видимости определяется отступами. Каждый блок кода — функции, циклы, условие — должен иметь согласованный уровень отступа.

  1. После определения функции требуется хотя бы один уровень отступа (обычно четыре пробела).
  2. Все инструкции внутри функции должны использовать одинаковый отступ.
  3. Смешивание табуляции и пробелов или изменение глубины отступа вызывает IndentationError.

Пример правильного отступа:

def demo():
    print("Line 1")
    print("Line 2")

И распространённая ошибка:

def demo():
print("Oops")

которая вызывает: IndentationError: expected an indented block

Использование оператора return

Ключевое слово return отправляет значение обратно вызывающему коду. Если функция завершается без встречи return, она неявно возвращает None.

def square(x):
    return x * x

print(square(4))  # 16

Без return:

def square(x):
    x * x

print(square(4))  # None

Кроме того, печать самого объекта функции (например, print(square)) отображает его адрес в памяти, что редко полезно в прикладном коде.

Передача аргументов в функции

Аргументы предоставляют данные, необходимые для работы функции. Параметры — это заполнители, определённые в сигнатуре функции.

def multiply(x, y=1):
    return x * y

print(multiply(4))        # 4 (y по умолчанию 1)
print(multiply(4, 2))     # 8
print(multiply(y=3, x=2)) # 6 (именованные аргументы позволяют менять порядок)

Аргументы переменной длины (*args и **kwargs)

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

def summarize(*values, **options):
    total = sum(values)
    print(f"Total: {total}")
    if options.get("show_details"):
        print("Values:", values)

summarize(1, 2, 3, 4, 5, show_details=True)

Python 2 vs Python 3: ключевые отличия

Лучшие практики проектирования функций

Полный пример

# Пример комплексного скрипта Python 3
def greet():
    """Print a friendly greeting."""
    print("Hello, Python!")

def square(x: int) -> int:
    """Return the square of x."""
    return x * x

def multiply(x: int, y: int = 1) -> int:
    """Return the product of x and y, with y defaulting to 1."""
    return x * y

# Демонстрация
if __name__ == "__main__":
    greet()
    print(square(4))        # 16
    print(multiply(4))      # 4
    print(multiply(4, 2))   # 8
    print(multiply(y=2, x=4)) # 8

Для более подробного руководства обратитесь к официальной документации Python по определениям функций.

Python

  1. Операторы, отступы и комментарии в Python: понятное руководство
  2. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  3. Lambda-функции в Python: практическое руководство по анонимным функциям
  4. Генераторы в Python: эффективная итерация и продвинутые сценарии
  5. Замыкания в Python: как вложенные функции захватывают переменные
  6. Декораторы в Python: улучшайте функции экспертными техниками
  7. Функции в C++: подробное объяснение с практическими примерами кода
  8. Освоение лямбда-функций Python: практические примеры и лучшие практики
  9. Функция abs() в Python: вычисление абсолютных значений для чисел и комплексных чисел
  10. Функция round() в Python: подробное объяснение с практическими примерами