Введение
В этом лабораторном занятии (LabEx) вы научитесь проверять, возвращает ли функция None в Python. В рамках лабораторной работы вы узнаете о возвращаемых значениях функций, создав простой скрипт на Python с функцией, которая возвращает сумму двух чисел. Затем вы запустите скрипт и посмотрите на вывод.
Затем в рамках лабораторной работы функция будет модифицирована для возврата различных типов данных, и в конечном итоге внимание будет сосредоточено на сценариях, когда функция может не возвращать значение явно, что приводит к возврату None. Вы научитесь получать возвращаемое значение функции и проверять, равно ли оно None с использованием оператора is.
Изучите возвращаемые значения функций
На этом этапе вы узнаете о возвращаемых значениях функций в Python. Функции - это повторно используемые блоки кода, выполняющие определенные задачи. Часто вам нужно, чтобы функция вернула результат после выполнения своей работы. Этот результат называется возвращаемым значением.
Начнем с создания простого скрипта на Python, который определяет функцию с возвращаемым значением.
Откройте редактор VS Code в среде LabEx.
Создайте новый файл с именем
calculate.pyв директории~/project.~/project/calculate.pyДобавьте следующий код в файл
calculate.py:def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum ## Call the function and print the returned value result = add(5, 3) print(result)В этом коде:
- Мы определяем функцию с именем
add, которая принимает два аргумента,xиy. - Внутри функции мы вычисляем сумму
xиyи сохраняем ее в переменной с именемsum. - Инструкция
return sumуказывает, что функция должна вернуть значение переменнойsumпри вызове. - Вне функции мы вызываем функцию
addс аргументами5и3и сохраняем возвращаемое значение в переменной с именемresult. - Наконец, мы используем функцию
print()для вывода значения переменнойresult.
- Мы определяем функцию с именем
Сохраните файл
calculate.py.Откройте терминал в WebIDE.
Запустите скрипт с помощью следующей команды:
python calculate.pyВы должны увидеть следующий вывод:
8Этот вывод показывает, что функция
addправильно вычислила сумму 5 и 3 и вернула значение 8, которое затем было выведено в консоль.
Теперь изменим функцию так, чтобы она возвращала другое тип значения, например, строку.
Откройте файл
calculate.pyв VS Code.Измените код следующим образом:
def greet(name): """This function returns a greeting message.""" message = "Hello, " + name + "!" return message ## Call the function and print the returned value greeting = greet("LabEx User") print(greeting)В этом коде:
- Мы определяем функцию с именем
greet, которая принимает один аргумент,name. - Внутри функции мы создаем приветственное сообщение, объединяя строку "Hello, ", значение аргумента
nameи строку "!". - Инструкция
return messageуказывает, что функция должна вернуть приветственное сообщение. - Вне функции мы вызываем функцию
greetс аргументом"LabEx User"и сохраняем возвращаемое значение в переменной с именемgreeting. - Наконец, мы используем функцию
print()для вывода значения переменнойgreeting.
- Мы определяем функцию с именем
Сохраните файл
calculate.py.Запустите скрипт еще раз с помощью следующей команды:
python calculate.pyВы должны увидеть следующий вывод:
Hello, LabEx User!Этот вывод показывает, что функция
greetправильно создала приветственное сообщение и вернула его, которое затем было выведено в консоль.
Сохраните возвращаемое значение
На предыдущем этапе вы узнали, как определять функции, возвращающие значения. Теперь вы узнаете, как захватывать и использовать эти возвращаемые значения в своих программах. Захват возвращаемого значения означает сохранение значения, возвращаемого функцией, в переменной, чтобы вы могли использовать его позже.
Продолжим работу с файлом calculate.py, который вы создали на предыдущем этапе. Мы изменим скрипт, чтобы он выполнял больше операций и захватывал возвращаемые значения.
Откройте файл
calculate.pyв VS Code.Измените код следующим образом:
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def subtract(x, y): """This function subtracts two numbers and returns the result.""" difference = x - y return difference ## Call the functions and capture the return values num1 = 10 num2 = 5 sum_result = add(num1, num2) print("The sum of", num1, "and", num2, "is:", sum_result) difference_result = subtract(num1, num2) print("The difference between", num1, "and", num2, "is:", difference_result)В этом коде:
- Мы определяем две функции:
addиsubtract. - Мы вызываем функцию
addс аргументамиnum1иnum2и сохраняем возвращаемое значение в переменной с именемsum_result. - Мы вызываем функцию
subtractс аргументамиnum1иnum2и сохраняем возвращаемое значение в переменной с именемdifference_result. - Мы используем функцию
print()для вывода значенийsum_resultиdifference_resultвместе с описательным текстом.
- Мы определяем две функции:
Сохраните файл
calculate.py.Запустите скрипт с помощью следующей команды:
python calculate.pyВы должны увидеть следующий вывод:
The sum of 10 and 5 is: 15 The difference between 10 and 5 is: 5Этот вывод показывает, что мы успешно захватили возвращаемые значения функций
addиsubtractи использовали их в нашей программе.
Теперь создадим более сложный пример, где мы используем возвращаемое значение одной функции в качестве аргумента для другой функции.
Откройте файл
calculate.pyв VS Code.Измените код следующим образом:
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def multiply(x, y): """This function multiplies two numbers and returns the result.""" product = x * y return product ## Call the functions and capture the return values num1 = 5 num2 = 3 sum_result = add(num1, num2) product_result = multiply(sum_result, 2) ## Use the return value of add as an argument to multiply print("The sum of", num1, "and", num2, "is:", sum_result) print("The product of the sum and 2 is:", product_result)В этом коде:
- Мы определяем две функции:
addиmultiply. - Мы вызываем функцию
addс аргументамиnum1иnum2и сохраняем возвращаемое значение в переменной с именемsum_result. - Мы вызываем функцию
multiplyс аргументамиsum_resultи2. Это демонстрирует, как возвращаемое значение функцииaddможет быть использовано в качестве входных данных для функцииmultiply. Мы сохраняем возвращаемое значение в переменной с именемproduct_result. - Мы используем функцию
print()для вывода значенийsum_resultиproduct_resultвместе с описательным текстом.
- Мы определяем две функции:
Сохраните файл
calculate.py.Запустите скрипт с помощью следующей команды:
python calculate.pyВы должны увидеть следующий вывод:
The sum of 5 and 3 is: 8 The product of the sum and 2 is: 16Этот вывод показывает, что мы успешно использовали возвращаемое значение одной функции в качестве аргумента для другой функции, демонстрируя мощность и гибкость возвращаемых значений функций.
Проверьте, является ли возвращаемое значение None
В некоторых случаях функция может не всегда возвращать осмысленное значение. В таких ситуациях она может вернуть None. None - это специальное значение в Python, которое представляет отсутствие значения. Важно проверить, возвращает ли функция None, перед использованием ее возвращаемого значения, чтобы избежать ошибок.
Давайте изменим файл calculate.py, чтобы он включал функцию, которая может вернуть None.
Откройте файл
calculate.pyв VS Code.Измените код следующим образом:
def divide(x, y): """This function divides x by y and returns the result. If y is 0, it returns None to avoid division by zero errors. """ if y == 0: return None else: return x / y ## Call the function and check if the return value is None numerator = 10 denominator = 0 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result) denominator = 2 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result)В этом коде:
- Мы определяем функцию с именем
divide, которая принимает два аргумента,xиy. - Внутри функции мы проверяем, равно ли
y0. Если это так, мы возвращаемNone, чтобы избежать ошибки деления на ноль. - Если
yне равно 0, мы вычисляем результатx / yи возвращаем его. - Вне функции мы вызываем функцию
divideс знаменателем, равным 0. - Мы проверяем, является ли возвращаемое значение
None, используя операторis. - Если возвращаемое значение равно
None, мы выводим сообщение об ошибке. - В противном случае мы выводим результат деления.
- Затем мы снова вызываем функцию
divideс допустимым знаменателем и выводим результат.
- Мы определяем функцию с именем
Сохраните файл
calculate.py.Запустите скрипт с помощью следующей команды:
python calculate.pyВы должны увидеть следующий вывод:
Cannot divide by zero! The result of 10 / 2 is: 5.0Этот вывод показывает, что программа правильно обработала случай, когда знаменатель был равен 0, и вывела соответствующее сообщение об ошибке. Он также показывает, что программа правильно вычислила и вывела результат, когда знаменатель был не равен 0.
Важно использовать оператор is для проверки, является ли значение None, потому что None - это одиночный объект в Python. Это означает, что в всей программе существует только один экземпляр None. Использование оператора == может не всегда работать правильно, так как он сравнивает значения объектов, а не сами объекты.
Резюме
В этом практическом занятии (лабораторной работе) вы узнали о возвращаемых значениях функций в Python. Вы создали функцию с именем add, которая принимает два аргумента, вычисляет их сумму и возвращает результат. Затем вы вызвали функцию, сохранили возвращаемое значение в переменной и вывели его в консоль.
В практическом занятии показано, как функции могут возвращать значения различных типов, например, целые числа (integers). Это позволяет функциям выполнять вычисления или операции и передавать результаты обратно в вызывающий код для дальнейшего использования.



