Определение и использование функций в Python

PythonBeginner
Практиковаться сейчас

Введение

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

После изучения встроенных функций вы научитесь определять свои собственные простые функции. Наконец, вы попрактикуетесь в вызове этих пользовательских функций для выполнения содержащихся в них блоков кода, закрепляя свое понимание создания и использования функций в Python.

Понимание и использование встроенных функций

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

Давайте начнем с написания скрипта на Python, чтобы увидеть некоторые из этих функций в действии.

Сначала найдите файл builtin_functions.py в проводнике файлов WebIDE слева. Этот файл был предварительно создан для вас в каталоге ~/project. Дважды щелкните по файлу, чтобы открыть его в редакторе.

Теперь добавьте следующий код на Python в файл builtin_functions.py. Этот код демонстрирует, как вызывать несколько встроенных функций.

## Using the print() function to display output
print("Hello, Python Functions!")

## Using the len() function to get the length of a string
message = "Hello World"
print(len(message))

## Using the sum() function to add numbers in a list
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)

После написания кода сохраните файл, нажав Ctrl+S.

Чтобы запустить скрипт, откройте интегрированный терминал в WebIDE (если он еще не открыт, перейдите в верхнее меню и выберите Terminal > New Terminal). Затем выполните следующую команду:

python ~/project/builtin_functions.py

Вы увидите вывод каждого вызова print() в терминале.

Hello, Python Functions!
11
15

Этот вывод показывает результаты вызова встроенных функций: print() отображает текст, len() возвращает количество символов в строке, а sum() вычисляет сумму элементов в списке.

Использование функций с параметрами и возвращаемыми значениями

Функциям часто требуются входные данные для работы. Эти данные передаются в функцию в качестве параметров (также называемых аргументами). После обработки функция может отправить результат обратно, который называется возвращаемым значением (return value).

Давайте расширим наш скрипт builtin_functions.py, чтобы изучить функции, которые принимают параметры, и посмотрим, как мы можем использовать их возвращаемые значения.

Снова откройте файл builtin_functions.py в редакторе WebIDE. Добавьте следующий код в конец файла:

## Using the max() function with multiple number parameters
largest_number = max(10, 25, 15)
print(largest_number)

## Using the round() function with two parameters
pi_approx = 3.14159
rounded_pi = round(pi_approx, 2) ## round to 2 decimal places
print(rounded_pi)

## Using the sorted() function with a list parameter
unsorted_list = ['cherry', 'apple', 'banana']
sorted_list = sorted(unsorted_list)
print(sorted_list)

Сохраните изменения в файле (Ctrl+S).

Теперь запустите обновленный скрипт из терминала:

python ~/project/builtin_functions.py

В терминале отобразится вывод как из исходного, так и из нового кода.

Hello, Python Functions!
11
15
25
3.14
['apple', 'banana', 'cherry']

Давайте рассмотрим новый вывод:

  • max(10, 25, 15) принимает три числа в качестве параметров и возвращает наибольшее из них, 25.
  • round(pi_approx, 2) принимает число и количество знаков после запятой в качестве параметров. Он возвращает округленное значение, 3.14.
  • sorted(unsorted_list) принимает список в качестве параметра и возвращает новый список с элементами, отсортированными в порядке возрастания.

В каждом случае мы сохраняли возвращаемое значение функции в переменной (largest_number, rounded_pi, sorted_list) перед тем, как вывести его. Это распространенная и полезная практика.

Определение простой функции

Хотя встроенные функции мощны, вам часто потребуется создавать собственные функции для выполнения пользовательских задач. Это называется определением функции.

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

def function_name(parameters):
    """Docstring: An optional description of the function."""
    ## Code to be executed (the function body)
    ## ...
    return value  ## Optional return statement
  • def: Ключевое слово, начинающее определение функции.
  • function_name: Описательное имя вашей функции.
  • (parameters): Входные переменные для функции. Функция может иметь ноль или более параметров.
  • :: Двоеточие отмечает конец заголовка функции.
  • Отступ (Indentation): Строки кода внутри функции должны иметь отступ (обычно 4 пробела). Так Python группирует операторы.

Давайте создадим нашу первую функцию. В проводнике файлов WebIDE найдите и откройте файл my_functions.py.

Добавьте следующий код в my_functions.py, чтобы определить функцию, которая выводит приветствие:

## Define a simple function named 'greet'
def greet():
    """This function prints a simple greeting message."""
    print("Hello from a user-defined function!")

Сохраните файл.

На этом этапе вы успешно определили функцию с именем greet. Однако, если вы запустите этот скрипт, ничего не произойдет. Определение функции просто сообщает Python, что делает функция; оно фактически не выполняет код внутри нее. Чтобы выполнить код функции, вам нужно вызвать ее, что мы рассмотрим на следующем шаге.

Вызов пользовательской функции

После определения функции вам необходимо ее вызвать (call), чтобы выполнить ее код. Вызов функции прост: вы просто вводите ее имя, за которым следуют круглые скобки ().

Давайте вызовем функцию greet, которую мы определили на предыдущем шаге.

Откройте файл my_functions.py в редакторе WebIDE. Добавьте строку кода после определения функции, чтобы вызвать ее.

## Define a simple function named 'greet'
def greet():
    """This function prints a simple greeting message."""
    print("Hello from a user-defined function!")

## Call the greet function to execute its code
print("Calling the function now...")
greet()

Сохраните файл. Важно, чтобы вызов функции greet() находился после блока def greet():. Python читает файлы сверху вниз, поэтому вы должны определить функцию, прежде чем сможете ее вызвать.

Теперь запустите скрипт из терминала:

python ~/project/my_functions.py

Вы увидите вывод, напечатанный в консоли:

Calling the function now...
Hello from a user-defined function!

Большое преимущество функций — их многократное использование (reusability). Вы можете вызывать одну и ту же функцию несколько раз, не переписывая ее код. Давайте снова вызовем greet(). Измените my_functions.py следующим образом:

## Define a simple function named 'greet'
def greet():
    """This function prints a simple greeting message."""
    print("Hello from a user-defined function!")

## Call the greet function multiple times
print("Calling the function...")
greet()
print("Calling it again...")
greet()

Сохраните файл и запустите его еще раз:

python ~/project/my_functions.py

Теперь вывод показывает, что функция была выполнена дважды:

Calling the function...
Hello from a user-defined function!
Calling it again...
Hello from a user-defined function!

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

Резюме

В этой лабораторной работе вы изучили основы функций в Python. Вы начали с изучения встроенных функций Python, таких как print(), len() и sum(), и практиковались в их вызове в скрипте. Затем вы глубже погрузились в то, как работают функции, передавая параметры и используя их возвращаемые значения на примерах, таких как max(), round() и sorted().

Наконец, вы изучили синтаксис определения собственных пользовательских функций с помощью ключевого слова def и практиковались в вызове вашей пользовательской функции для выполнения ее кода. Эта лабораторная работа заложила прочную основу для создания модульного и многократно используемого кода — ключевого навыка для любого программиста на Python.