Декоратор
lru_cache
из модуля functools
сохраняет результаты вызовов функции, чтобы не пересчитывать их заново.Это ускоряет работу, особенно для тяжёлых вычислений.
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(fib(30)) # Считает быстро благодаря кэшу
maxsize ограничивает количество сохранённых результатов (или None для безлимита).
Please open Telegram to view this post
VIEW IN TELEGRAM
len()
в Python и когда её применять?Функция
len()
возвращает количество элементов в итерируемом объекте или длину строки. Это удобный способ быстро получить размер коллекции или проверить, пуста ли она.items = ["apple", "banana", "orange"]
count = len(items)
print(count)
# ➜ 3
len()
возвращает количество элементов списка.len() удобно использовать при работе со списками, строками, словарями, множествами и любыми коллекциями. Она помогает проверять пустоту (if len(list) > 0), контролировать размеры данных и писать более читаемый код.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
19%
0 1 2 3 и [0, 1, 2, 3]
19%
0 1 3 и [1, 3]
15%
0 1 2 и [1, 3]
46%
0 2 и [1, 3]
Модуль
pathlib
упрощает работу с файлами и папками, заменяя старый os.path
.Объекты Path интуитивнее и поддерживают операции как с обычными переменными.
from pathlib import Path
path = Path("example.txt")
if path.exists():
print("Файл существует")
else:
print("Файла нет")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Функция
enumerate()
позволяет перебирать элементы с индексами, а параметр start
задаёт, с какого числа начинать счёт.tasks = ["Купить хлеб", "Выучить Python", "Сделать проект"]
for i, task in enumerate(tasks, start=1):
print(f"{i}. {task}")
1. Купить хлеб
2. Выучить Python
3. Сделать проект
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👍1
Функция
zip_longest()
из модуля itertools
объединяет несколько последовательностей, заполняя недостающие значения указанным значением.from itertools import zip_longest
names = ["Анна", "Борис"]
scores = [90]
for name, score in zip_longest(names, scores, fillvalue="—"):
print(name, score)
Анна 90
Борис —
Please open Telegram to view this post
VIEW IN TELEGRAM
В Python можно использовать
else
не только с if
, но и с циклами for
и while
.Он выполняется только если цикл завершился без break.
nums = [1, 3, 5, 7]
for n in nums:
if n % 2 == 0:
print("Есть чётное")
break
else:
print("Все числа нечётные")
Все числа нечётные
Please open Telegram to view this post
VIEW IN TELEGRAM
Оператор
*
позволяет распаковывать последовательности в отдельные элементы прямо в выражениях или вызовах функцийnums = [1, 2, 3]
print(*nums) # 1 2 3
a, *middle, b = [10, 20, 30, 40, 50]
print(a, middle, b) # 10 [20, 30, 40] 50
📌 Полезно для передачи аргументов, объединения списков и элегантного извлечения частей коллекций.
Please open Telegram to view this post
VIEW IN TELEGRAM