В этом уроке мы разберем ключевой аспект работы функций в Python — оператор return. Вы узнаете, как передавать данные из функции обратно в основную программу, чем возврат значения отличается от простого вывода на экран (print), и что такое "мертвый код", который никогда не выполнится.
Задания расположены от простых к сложным: начнем с синтаксиса, затем научимся отличать return от print, исправим ошибки, соберем функции из частей и научимся предсказывать результат их выполнения. Помните: функция — это "черный ящик", и return — это способ получить результат её работы.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Определение функций.
- Параметры и аргументы.
- Возврат значений return.
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Возврат результата сложения
Допишите функцию add_numbers, чтобы она возвращала сумму двух аргументов, а не выводила её на экран. Используйте специальное ключевое слово для возврата значения.
def add_numbers(a, b):
result = a + b
input1S result
sum_value = add_numbers(5, 10)
print(sum_value)Разница между return и print
Проанализируйте код. Функция calculate вычисляет значение, но не возвращает его явно (нет return). Переменной res присваивается результат вызова функции. Что выведет последний print(res)?
def calculate(x):
print(x * 2)
res = calculate(5)
print(res)Исправьте логическую ошибку
В этой функции есть строка кода, которая никогда не выполнится ("мертвый код"), потому что стоит после возврата значения. Найдите и удалите лишнюю строку, чтобы код стал чистым.
def get_status(age): if age >= 18: return "Adult" print("Checking age...") return "Child"Заполните пропуски в функциях
Используя банк данных, допишите функции. Первая должна возвращать результат математического выражения, а вторая — булево значение (True/False). Обратите внимание на контекст.
def square_area(side):
# Возвращаем площадь квадрата
return input1S
def is_even(number):
# Возвращаем True, если число четное
if number % 2 == 0:
return input2S
return FalseСохранение результата функции в переменную
Восстановите правильный порядок строк. Сначала нужно объявить функцию, затем вызвать её и сохранить результат в переменную, и только потом вывести эту переменную.
print(f"Price with tax: {final_price}")def calculate_tax(price):final_price = calculate_tax(100) return price * 1.2Функция абсолютного значения
Соберите функцию my_abs, которая возвращает модуль числа. Если число отрицательное, возвращаем его со знаком минус (делаем положительным). Если положительное — возвращаем как есть. Один из фрагментов лишний.
def my_abs(x): if x < 0: return -x return x print(x)Что вернет этот код?
Распределите примеры кода по категориям: те, что возвращают конкретное значение (число, строку, булево), и те, что возвращают None (неявно или явно).
return 10 + 5returnprint("Hello")return "Success"x = 5return TrueТермины: Вывод vs Возврат
Сопоставьте действия программы с их описанием. Это поможет окончательно разобраться в разнице между print() и return.
returnprint()NoneТрассировка функции с циклом
Проследите за выполнением функции mystery. Она принимает список чисел. Какое число вернет функция при вызове mystery([10, 5, 2])? Введите число.
def mystery(numbers):
res = 0
for n in numbers:
if n % 2 == 0:
res += n
else:
res -= n
return res
print(mystery([10, 5, 2]))