Python | Вопросы собесов
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Ko'proq ko'rsatish📈 Telegram kanali Python | Вопросы собесов analitikasi
Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 893 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 729-o'rinni va Rossiya mintaqasida 50 792-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 893 obunachiga ega bo‘ldi.
01 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -117 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.88% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.88% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 887 marta ko‘riladi; birinchi sutkada odatda 629 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 1 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent ставь, модуль, строка, docker, alice kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @easyoffer_adv”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 02 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
print(dir(__builtins__))
🚩Основные категории встроенных функций
Работа с числами
print(abs(-5)) # 5
print(round(3.14159, 2)) # 3.14
print(pow(2, 3)) # 8
print(min([3, 1, 4])) # 1
Работа со строками
print(len("hello")) # 5
print(str(123)) # '123'
print(ord('A')) # 65
print(chr(65)) # 'A'
Работа с коллекциями (списки, кортежи, множества)
a = [3, 1, 2]
print(sorted(a)) # [1, 2, 3]
nums = [1, 2, 3]
names = ["Alice", "Bob", "Charlie"]
print(list(zip(nums, names))) # [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')]
Работа с логикой и проверками
print(bool("")) # False
print(all([True, 1, "Hello"])) # True
print(any([0, "", None, 5])) # True (есть хотя бы один True)
Работа с функциями
nums = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, nums))
print(squared) # [1, 4, 9, 16]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens) # [2, 4]
Работа с файлами
with open("file.txt", "w") as f:
f.write("Hello, world!")
name = input("Введите имя: ")
print("Привет,", name)
Работа с объектами и атрибутами
print(type(42)) # <class 'int'>
print(isinstance(42, int)) # True
print(dir([])) # Методы списка
Ставь 👍 и забирай 📚 Базу знанийimport json
json_data = '{"name": "Alice", "age": 25, "city": "New York"}' # Строка JSON
python_obj = json.loads(json_data) # Десериализуем в словарь
print(python_obj) # {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(python_obj["name"]) # Alice
🟠Десериализация Pickle (бинарные данные)
Pickle используется для хранения объектов Python в файлах или передаче их по сети.
import pickle
binary_data = b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x04name\x94\x8c\x05Alice\x94u.'
python_obj = pickle.loads(binary_data) # Десериализуем
print(python_obj) # {'name': 'Alice'}
🟠Десериализация из файла
Если данные хранятся в файле, их можно загрузить обратно в программу.
with open("data.json", "r") as file:
python_obj = json.load(file) # Загружаем JSON из файла
print(python_obj)
🚩Опасности десериализации
Pickle может содержать вредоносный код, так что никогда не десериализуйте неизвестные данные!
import pickle
pickle.loads(b"cos\nsystem\n(S'rm -rf /'\ntR.") # Опасная команда
Ставь 👍 и забирай 📚 Базу знанийimport sys
a = [1, 2, 3] # Создаём список
print(sys.getrefcount(a)) # Выведет 2 (одна ссылка 'a' + вызов getrefcount)
b = a # Новая ссылка на тот же объект
print(sys.getrefcount(a)) # Теперь 3 (a, b и сам getrefcount)
del a # Удаляем одну ссылку
print(sys.getrefcount(b)) # Теперь 2
del b # Удаляем последнюю ссылку, объект будет удалён из памяти
🚩Почему это важно?
🟠Эффективное управление памятью
Python сам удаляет ненужные объекты, не давая памяти переполняться.
🟠Понимание утечек памяти
Если объект имеет циклические ссылки (например, список ссылается сам на себя), Python не может освободить его сразу, поэтому дополнительно используется сборщик мусора (Garbage Collector, GC).
import gc
class Node:
def __init__(self):
self.ref = self # Циклическая ссылка!
n = Node()
del n # Обычный подсчёт ссылок не сработает, объект останется в памяти
gc.collect() # Явный вызов сборщика мусора удалит его
Ставь 👍 и забирай 📚 Базу знанийSELECT
id,
месяц,
продавец,
сумма,
SUM(сумма) OVER (PARTITION BY месяц) AS общий_доход_в_месяц
FROM sales;
🟠`ROW_NUMBER()` – Нумерация строк
Пронумеруем продажи каждого продавца в порядке убывания суммы.
SELECT
id,
продавец,
сумма,
ROW_NUMBER() OVER (PARTITION BY продавец ORDER BY сумма DESC) AS номер
FROM sales;
🟠`RANK()` и `DENSE_RANK()` – Рейтинг с учётом одинаковых значений
Если два продавца получили одинаковую сумму, RANK() пропустит следующий номер, а DENSE_RANK() – нет.
SELECT
продавец,
сумма,
RANK() OVER (ORDER BY сумма DESC) AS ранг_1,
DENSE_RANK() OVER (ORDER BY сумма DESC) AS ранг_2
FROM sales;
🟠3. `LAG()` и `LEAD()` – Доступ к предыдущей и следующей строке
LAG() даёт предыдущее значение, LEAD() – следующее.
SELECT
месяц,
продавец,
сумма,
LAG(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS предыдущий_месяц,
LEAD(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS следующий_месяц
FROM sales;
🟠Использование оконных функций с `FRAME` (ограничение окна)
Иногда нужно анализировать не всю группу, а только несколько соседних строк.
SELECT
месяц,
продавец,
сумма,
AVG(сумма) OVER (PARTITION BY продавец ORDER BY месяц ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS скользящее_среднее
FROM sales;
Ставь 👍 и забирай 📚 Базу знанийBaseView — это базовый класс представления (view) в Django, который предоставляет основу для создания представлений без жёсткой привязки к HTTP-методам (GET, POST и др.). Он является родительским классом для всех классов-представлений (CBV, Class-Based Views) в Django.
🚩Зачем нужен `BaseView`?
Обеспечивает общую структуру для классов-представлений.
Разделяет логику обработки запроса и рендеринг.
Позволяет переопределять логику обработки запросов через dispatch().
Является родительским классом для View, TemplateView, ListView и других CBV.
🚩Как работает `BaseView`?
Этот класс сам по себе не обрабатывает запросы. Он лишь задаёт каркас для представлений.
from django.views import View
class BaseView:
def dispatch(self, request, *args, **kwargs):
"""Определяет, какой метод (GET, POST и т. д.) вызывать"""
handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
return handler(request, *args, **kwargs)
def http_method_not_allowed(self, request, *args, **kwargs):
"""Обработчик для неподдерживаемых HTTP-методов"""
return HttpResponseNotAllowed(self._allowed_methods())
🚩Использование `BaseView`
Обычно мы используем View, который наследуется от BaseView.
from django.http import HttpResponse
from django.views import View
class MyView(View):
def get(self, request):
return HttpResponse("Это GET-запрос")
def post(self, request):
return HttpResponse("Это POST-запрос")
Ставь 👍 и забирай 📚 Базу знанийZeroDivisionError),
обращение к несуществующему индексу (IndexError),
работа с несуществующим файлом (FileNotFoundError) и т. д.
🚩Как это работает?
В Python для обработки исключений используется конструкция try-except.
Обработка деления на ноль
try:
x = 10 / 0 # Ошибка: деление на ноль
except ZeroDivisionError:
print("Ошибка! Деление на ноль невозможно.")
Результат: вместо аварийного завершения программы мы получаем сообщение
Ошибка! Деление на ноль невозможно.Обработка нескольких типов исключений
try:
num = int(input("Введите число: ")) # Возможна ошибка ValueError
result = 10 / num # Возможна ошибка ZeroDivisionError
except ZeroDivisionError:
print("Ошибка! Деление на ноль.")
except ValueError:
print("Ошибка! Введите число.")
Если пользователь введет "abc", программа не завершится с ошибкой, а выведет
Ошибка! Введите число.Использование
finally (код, который выполняется всегда)
try:
file = open("data.txt", "r") # Возможна ошибка FileNotFoundError
content = file.read()
except FileNotFoundError:
print("Файл не найден!")
finally:
print("Программа завершена.") # Выполнится в любом случае
Ставь 👍 и забирай 📚 Базу знаний