Python Кодер
2.31K subscribers
676 photos
3 files
276 links
Cайт: uoffer.ru
Реклама: @murman12

Вопросы: https://t.me/+cEryzTP27uUyOWRi
Leetcode: https://t.me/+7Lmpc3Upyxk2MWFi
Вакансии: https://t.me/+slOzbyonqfRmZGI6

База реальных собесов: https://t.me/tribute/app?startapp=sv92
Download Telegram
🐍Создание словаря с заданными ключами и значением по умолчанию.

Метод fromkeys() позволяет создать новый словарь, используя указанные ключи из итерируемого объекта и заданное значение в качестве значения по умолчанию для всех ключей.

Синтаксис:
dict.fromkeys(iterable, value)

▫️iterable - итерируемый объект, содержащий ключи для создания словаря.
▫️value - значение, которое будет присвоено каждому ключу в словаре.

Python Universe | #dict
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🐍Вставка элемента в список.

Метод insert() позволяет вставить указанный элемент на определенную позицию в списке.

Синтаксис:
list.insert(index, object)

▫️index - индекс, на который нужно вставить элемент. Если указанный индекс больше длины списка, элемент будет добавлен в конец списка.
▫️object - элемент, который нужно вставить в список.

Python Universe | #list #Списки
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍Подсчет количества элементов в списке.

Метод count() позволяет подсчитать количество вхождений указанного элемента в списке и вернуть его. Если элемент не найден, возвращается 0.

Синтаксис:
list.count(x)

▫️x - элемент, количество вхождений которого нужно подсчитать.

Python Universe | #list #Списки
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2❤1
Что выведет код выше?
Anonymous Quiz
60%
True
20%
False
9%
None
11%
Error
🎉7🐳4☃2
🎉5🤬3🤣3👍1
🐍Расширение списка с использованием метода extend()

Метод extend() позволяет добавить элементы из другого итерируемого объекта в конец текущего списка.

Синтаксис:
list.extend(iterable)

▫️list - список, к которому нужно добавить элементы.
▫️iterable - итерируемый объект, содержащий элементы, которые нужно добавить в список.

Python Universe | #list #Списки
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
🎉5👍4😁3
Что выведет код выше?
Anonymous Quiz
47%
True
20%
False
16%
None
15%
Error
2%
''
🎉9🤨6👌2😎2
🐍Цикл for/else в Python.

Цикл for/else является особенностью Python, которая позволяет выполнить блок кода из else, если цикл for завершается естественным образом (без прерывания с помощью оператора break).

Python Universe | #циклы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3😢1🙏1
В чём заключается проблема множественного наследования?

Основная сложность — это "проблема алмаза": когда класс наследует от двух классов с общим предком, возникает неоднозначность в порядке вызова методов этого предка.

Для её решения применяется алгоритм MRO (Method Resolution Order), который определяет порядок вызовов, однако это добавляет сложности при проектировании системы.


🔥 Твой Оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Почему стоит создавать собственный тип исключения?

Создание собственного типа исключения позволяет чётко обозначить конкретные ошибки, связанные с бизнес-логикой или уникальными ситуациями, которые стандартные исключения не охватывают. Это делает код более понятным и упрощает обработку ошибок.

🔥 Твой Оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8😁6
Что такое идемпотентность и зачем она нужна?

Это операция, которая при повторном выполнении даёт тот же результат и не изменяет состояние системы дополнительно.

▫️Повышение надёжности:
Если операция случайно выполнится несколько раз (например, из-за сбоя в сети), идемпотентность гарантирует, что это не повлияет на итоговое состояние.

▫️Предотвращение дубликатов:
Позволяет избежать непреднамеренного добавления данных или повторного применения изменений.

Работа с HTTP:

GET — ✔️ идемпотентен

GET /users/1


PUT — ✔️ идемпотентен

PUT /users/1
{
"name": "Alice"
}

Повторный вызов не изменит состояние.

POST — ✖️ не идемпотентен

POST /users
{
"name": "Alice"
}

Каждый вызов создаст нового пользователя.

Идемпотентность в БД:

✔️ Идемпотентный:

DELETE FROM users WHERE id = 5;

Повторное выполнение ничего не изменит, если пользователь уже удалён.

✖️ Не идемпотентный:

INSERT INTO users (name) VALUES ('Alice');

Повтор — создаст дубликаты.

Идемпотентность = безопасное повторное выполнение.

🔥 Твой Оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍1🌚1💯1
Чем init() отличается от new() ? | Шанс 19%

Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатывает его инициализацию.

__new__ вызывается автоматически при вызове имени класса (при создании экземпляра), тогда как init вызывается каждый раз, когда экземпляр класса возвращается __new__, передавая возвращаемый экземпляр в __init__ в качестве параметра self, поэтому даже если вы сохранили экземпляр где-нибудь глобально/статически и возвращали его каждый раз из __new__, для него все-равно будет каждый раз вызываться __init__.

Пример:

class Singleton:
_instance = None

def __new__(cls):
if cls._instance is None:
print("Создание объекта")
cls._instance = super().__new__(cls)
return cls._instance

def __init__(self):
print("Инициализация объекта")

a = Singleton()
b = Singleton()


Вывод:

Создание объекта
Инициализация объекта
Инициализация объекта


__new__ сработал один раз — объект создан.
__init__ вызвался дважды — каждый раз при создании экземпляра.

10 видео ответов от кандидатов на этот вопрос

🔥 Твой Оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔3❤2
Как найти и проанализировать медленный запрос в PostgreSQL? шанс 2%

1️⃣Включите логирование медленных запросов, задав параметр log_min_duration_statement в конфигурации. Это позволит записывать все запросы, выполняющиеся дольше указанного времени.

2️⃣Используйте команды EXPLAIN или EXPLAIN ANALYZE для просмотра плана выполнения запроса и оценки, где возникают задержки.

3️⃣Проверьте, правильно ли настроены индексы для ускорения работы запросов, и при необходимости оптимизируйте сам запрос.

4️⃣Анализируйте статистику запросов с помощью расширения pg_stat_statements, которое собирает информацию о времени выполнения и частоте запросов.

Видео ответ от кандидата на этот вопрос

🔥 Твой Оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2