Что выведет следующий код?
Anonymous Quiz
10%
[1] и [2]
61%
[1] и [1, 2]
26%
[1] и [2] (в новом списке)
3%
Ошибка из-за повторного использования y
Метод
setdefault()
используется для получения значения по ключу из словаря, одновременно создавая его, если ключа ещё нет.data = {}
data.setdefault("users", []).append("Анна")
data.setdefault("users", []).append("Борис")
print(data)
{'users': ['Анна', 'Борис']}
if key not in dict
.Please open Telegram to view this post
VIEW IN TELEGRAM
Объект
slice
позволяет создавать диапазоны с шагом, которые можно применять к спискам, строкам и другим последовательностям.text = "Программирование"
s = slice(0, 10, 2)
print(text[s]) # Погрмр
slice(start, stop, step)
— аналог среза text[0:10:2]
, но его можно передавать как переменную.Полезно, когда срез нужно вычислять динамически или передавать в функцию
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
14%
1
43%
1\ncleaning up
17%
1\n2\ncleaning up
26%
1, а cleaning up не выведется вообще
Модуль
dataclasses
позволяет быстро описывать классы-хранилища данных без лишнего шаблонного кода.from dataclasses import dataclass
@dataclass
class User:
name: str
age: int = 0
u = User("Анна", 25)
print(u) # User(name='Анна', age=25)
•
Автоматически создаёт __init__
, __repr__
, __eq__
•
Поддерживает значения по умолчанию•
Можно добавлять методы, как в обычном классеИдеально подходит для структурированных объектов — например, при работе с API, конфигами или моделями
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
cycle()
из модуля itertools
позволяет бесконечно перебирать элементы последовательности по кругу.from itertools import cycle
colors = ["red", "green", "blue"]
for i, color in zip(range(7), cycle(colors)):
print(color)
red
green
blue
red
green
blue
red
Работает с любыми итерируемыми объектами
Please open Telegram to view this post
VIEW IN TELEGRAM
Декоратор
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
18%
0 1 2 3 и [0, 1, 2, 3]
18%
0 1 3 и [1, 3]
18%
0 1 2 и [1, 3]
45%
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