П Р О Д О Л Ж Е Н И Е
🧑💻2️⃣ На моменте, когда происходит вызов factorial(1), срабатывает базовый случай, и функция возвращает 1 (Это был пятый вызов)
🔗‼️3️⃣ После всего это начинается возврат значений, обратный процесс (так как рекурсивные вызовы завершатся и достигнут базового случая)
🟰4️⃣ Идем от обратного,четвертый вызов (Это был factorial(2)) → получает результат 1 от factorial(1) и возвращает 2×1=2 (Короче, четвертый вызов получает результат от 5 и возвращает результат) — происходит это все согласно строчке:
5️⃣⚙️ Третий вызов: factorial(3) получает результат 2 от factorial(2) и возвращает 3×2=6.
6️⃣🟰 Второй вызов: factorial(4), случай опять же не базовый, поэтому вызываем 4 * factorial(3), получаем 24
P.S (Надеюсь вы понимаете, что происходит)
7️⃣🟰 Первый вызов: factorial(5), получает 24 от второго вызова и умножает на 5, возвращая 120, это и будет наш ответ
P.S (Надеюсь вы понимаете, что происходит)
🧑💻2️⃣ На моменте, когда происходит вызов factorial(1), срабатывает базовый случай, и функция возвращает 1 (Это был пятый вызов)
🔗‼️3️⃣ После всего это начинается возврат значений, обратный процесс (так как рекурсивные вызовы завершатся и достигнут базового случая)
🟰4️⃣ Идем от обратного,четвертый вызов (Это был factorial(2)) → получает результат 1 от factorial(1) и возвращает 2×1=2 (Короче, четвертый вызов получает результат от 5 и возвращает результат) — происходит это все согласно строчке:
return n * factorial(n - 1)
5️⃣⚙️ Третий вызов: factorial(3) получает результат 2 от factorial(2) и возвращает 3×2=6.
6️⃣🟰 Второй вызов: factorial(4), случай опять же не базовый, поэтому вызываем 4 * factorial(3), получаем 24
P.S (Надеюсь вы понимаете, что происходит)
7️⃣🟰 Первый вызов: factorial(5), получает 24 от второго вызова и умножает на 5, возвращая 120, это и будет наш ответ
P.S (Надеюсь вы понимаете, что происходит)
Строка return n * factorial(n - 1) запускает рекурсивный вызов и ждёт его результат. Как только factorial(n - 1) возвращает значение, это значение умножается на n, и результат поднимается обратно, возвращаясь вызову на уровень выше.
7❤🔥4👍2❤1🤓1
#1
numbers = [1, 2, 3]
result = ", ".join(str(num) for num in numbers)
print(result)
7❤🔥4❤2👍1🤓1
👍4❤🔥2❤1🤓1
#2
def sum_values(a, b, c):
return a + b + c
def wrapper(*args):
return sum_values(*args)
print(wrapper(5, 10, 15))
5👍4❤1❤🔥1
❤4❤🔥2👍1
#3
def calculate_sum(*args, **kwargs):
total = sum(args)
for key, value in kwargs.items():
total += value
return total
print(calculate_sum(1, 2, 3, num1=4, num2=5))
3🤯5❤1❤🔥1🤓1
#1
text = "Learn Python step by step"
result = text.split(" ", 3)
print(result)
8❤🔥3❤1🥰1
#2
def Code_lab_func(a, b, *args, **kwargs):
result = a + b
for arg in args:
result += arg
for key in kwargs:
result += kwargs[key]
return result
print(Code_lab_func(1, 2, 3, 4, extra1=5, extra2=6.5))
4❤🔥4❤1🥰1
❤🔥3❤1🤯1👀1
🧑💻 Гайс, завтра разберем какой нибудь код или разберем прошлые вопросы (в любом случае, завтра будет нормальный пост)
#1
#1
x = 5
def test():
global x
x += 1
return x
print(test())
6❤🔥4🥰1
#2
def func(a, b=5, *args, d=8, **kwargs):
return a + b + d
print(func(1, 2, 3, d=4, e=5))
3👨💻3🤡1
🔗 Всем доброе утро! Сорянчик, что не выпускал посты, неделя выдалась тяжелой, поэтому дал время себе отдохнуть 🥱
Разбираем вот такой несложный код:
0️⃣ Как обычно объявляем функцию:
1️⃣ Объявляем вторую функцию 🟰
🔗 Во второй строчке мы как раз вызываем первую функцию
2️⃣ Дальше просто вызываем вторую функцию
_______________________________
3️⃣ Кароч, вызвали мы wrapper(5, 10, 15) → (5, 10, 15) — эти самые аргументы передаются в wrapper и собираются в кортеж args = (5, 10, 15) → Внутри wrapper, когда мы вызываем
Разбираем вот такой несложный код:
def sum_values(a, b, c):
return a + b + c
def wrapper(*args):
return sum_values(*args)
print(wrapper(5, 10, 15))
0️⃣ Как обычно объявляем функцию:
def sum_values(a, b, c):
return a + b + c
1️⃣ Объявляем вторую функцию 🟰
wrapper()🟰. В виде аргумента будет 🟰*args🟰 (Позиционные аргументы, для тех, кто забыл → Сама функция *args передает произвольное количество аргументов в виде кортежа)def wrapper(*args):
return sum_values(*args)
🔗 Во второй строчке мы как раз вызываем первую функцию
🟰sum_values()🟰 и с помощью *args переданные аргументы "передаются" в 🟰sum_values🟰 2️⃣ Дальше просто вызываем вторую функцию
print(wrapper(5, 10, 15))_______________________________
3️⃣ Кароч, вызвали мы wrapper(5, 10, 15) → (5, 10, 15) — эти самые аргументы передаются в wrapper и собираются в кортеж args = (5, 10, 15) → Внутри wrapper, когда мы вызываем
🟰sum_values(*args)🟰, кортеж (5, 10, 15) распаковывается, и sum_values получает три отдельных аргумента: a=5, b=10, и c=15 → по итогам, sum_values вычисляет сумму: 5 + 10 + 15 = 3015👍4❤🔥1🥰1🤯1
🤡8🤓2❤🔥1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑💻 Гайс, срочно переходим в 🔗Н А Ш Н О В Ы Й К А Н А Л 🔗 по машинному обучению для полного кайфа. Этот канал так и остается под изучение Python и других прелестей программирования (и не только).
👨💻3👀2🤯1🤡1🤓1
#1
def func(x, y=[]):
y.append(x)
return y
print(func(1))
print(func(2, [3]))
print(func(4))
3👍3❤🔥1❤1🥰1
#1
Anonymous Quiz
30%
[1], [3, 2], [4]
50%
[1], [3, 2], [1, 4]
20%
[1], [3, 2], [1]
0%
[1], [3, 2], [1, 4]
0%
[1], [3, 2], [4, 1]
❤3❤🔥1👍1🤯1