returnДо сих пор наши функции только выводили информацию на экран с помощью print(). Но часто нам нужно, чтобы функция вернула значение, которое мы можем использовать дальше в программе — сохранить в переменную, передать в другую функцию или использовать в вычислениях.
Для этого используется ключевое слово return. В этом уроке мы научимся возвращать значения из функций, работать с несколькими возвращаемыми значениями и понимать, что происходит, когда функция ничего не возвращает.
print) и возвратом значения (return).return для возврата одного значения.None, если нет return.return vs printВажно понимать разницу между print() и return:
print() — выводит значение на экран, но функция ничего не возвращает.return — возвращает значение из функции, которое можно использовать дальше.# Функция с print (не возвращает значение)
def add_print(a, b):
print(a + b)
result = add_print(5, 3) # Выведет: 8
print(result) # Выведет: None (функция ничего не вернула)
# Функция с return (возвращает значение)
def add_return(a, b):
return a + b
result = add_return(5, 3) # Ничего не выводит
print(result) # Выведет: 8 (используем возвращённое значение)Самая простая форма return — возврат одного значения:
def add(a, b):
return a + b
result = add(5, 3)
print(result) # 8def square_area(side):
return side ** 2
area = square_area(5)
print(f"Площадь квадрата: {area}") # Площадь квадрата: 25def is_even(number):
return number % 2 == 0
print(is_even(4)) # True
print(is_even(5)) # Falsedef get_type(value):
return type(value).__name__
print(get_type(5)) # int
print(get_type("hello")) # str
print(get_type(3.14)) # floatФункция может возвращать несколько значений через кортеж (несколько значений через запятую):
def get_name_and_age():
name = "Анна"
age = 15
return name, age # Возвращает кортеж
result = get_name_and_age()
print(result) # ('Анна', 15)Можно сразу распаковать значения в отдельные переменные:
def divide_with_remainder(a, b):
quotient = a // b
remainder = a % b
return quotient, remainder
q, r = divide_with_remainder(17, 5)
print(f"Частное: {q}, Остаток: {r}") # Частное: 3, Остаток: 2def min_max(a, b):
if a < b:
return a, b
else:
return b, a
minimum, maximum = min_max(10, 5)
print(f"Минимум: {minimum}, Максимум: {maximum}") # Минимум: 5, Максимум: 10None — значение по умолчаниюЕсли функция не содержит return или return без значения, она возвращает None:
def do_nothing():
print("Что-то делаю...")
# Нет return
result = do_nothing()
print(result) # Nonedef do_nothing_explicit():
return # return без значения
result = do_nothing_explicit()
print(result) # NoneВозвращённое значение можно использовать разными способами:
def multiply(a, b):
return a * b
result = multiply(5, 3)
print(result) # 15def square(x):
return x ** 2
total = square(5) + square(3)
print(total) # 34def add(a, b):
return a + b
def multiply(a, b):
return a * b
result = multiply(add(2, 3), add(1, 4))
print(result) # 25 (5 * 5)def is_positive(number):
return number > 0
if is_positive(5):
print("Число положительное")В чём разница между print() и return?
print() выводит значение, return возвращает значение из функцииprint() и return делают одно и то жеprint() возвращает значение, return выводит значениеЧто выведет этот код?
def multiply(a, b):
return a * b
result = multiply(4, 5)
print(result)Что выведет этот код?
def get_info():
name = "Анна"
age = 15
return name, age
n, a = get_info()
print(f"{n}, {a} лет")Создай функцию calculate_perimeter(), которая принимает длину и ширину прямоугольника и возвращает его периметр.
def calculate_perimeter(length, width):
return 2 * (length + width)
p = calculate_perimeter(5, 7)
print(f"Периметр: {p}") # Периметр: 24Создай функцию get_digits(), которая принимает двузначное число и возвращает количество десятков и единиц.
def get_digits(number):
tens = number // 10
units = number % 10
return tens, units
t, u = get_digits(73)
print(f"Десятки: {t}, Единицы: {u}") # Десятки: 7, Единицы: 3Что выведет этот код?
def do_something():
print("Выполняю задачу...")
result = do_something()
print(result)return возвращает значение из функции, print() только выводит на экран.return.return или return без значения, она возвращает None.return завершает выполнение функции — код после return не выполнится.print() и return, ожидая, что print() вернёт значение — программа завершится ошибкой или даст неверный результат.return — в переменную попадёт None, и дальнейшие вычисления дадут ошибку.return, ожидая, что он выполнится — программа завершится ошибкой или даст неверный результат.Создай функцию multiply(), которая принимает два числа и возвращает их произведение. Вызови функцию и выведи результат.
Создай функцию calculate_area(), которая принимает длину и ширину прямоугольника и возвращает его площадь.
Создай функцию is_positive(), которая принимает число и возвращает True, если число положительное, и False в противном случае.
Создай функцию get_sum_and_product(), которая принимает два числа и возвращает их сумму и произведение.
Создай функцию calculate_circle(), которая принимает радиус круга и возвращает его площадь и длину окружности. Используй формулу: площадь = π × r², длина = 2 × π × r (π ≈ 3.14).
Создай функцию get_number_info(), которая принимает трёхзначное число и возвращает сумму его цифр и произведение его цифр.
Создай функцию solve_quadratic(), которая принимает коэффициенты a, b, c квадратного уравнения ax² + bx + c = 0 и возвращает два корня (если они есть). Используй формулу: x = (-b ± √(b² - 4ac)) / 2a. Предполагай, что дискриминант всегда положительный.
Создай две функции: gcd(a, b) — возвращает НОД (алгоритм Евклида), lcm(a, b) — возвращает НОК. Используй формулу: НОК(a, b) = a * b / НОД(a, b).
Создай рекурсивную функцию fib(n), которая возвращает n-е число Фибоначчи (нумерация с 1: fib(1)=1, fib(2)=1, fib(3)=2, …).