Python | Вопросы собесов
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Ko'proq ko'rsatish📈 Telegram kanali Python | Вопросы собесов analitikasi
Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 640 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 907-o'rinni va Rossiya mintaqasida 51 129-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 640 obunachiga ega bo‘ldi.
12 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -102 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.09% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.17% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 770 marta ko‘riladi; birinchi sutkada odatda 528 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 3 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
Контакт для рекламы: @sendme_ads”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 13 Oktabr, 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.
pip можно скачать определённую версию библиотеки с помощью оператора ==
pip install имя_библиотеки==версия
🚩Примеры
Установка конкретной версии
pip install numpy==1.21.0
Обновление до последней версии в пределах конкретного диапазона
pip install requests>=2.25,<3.0
Проверка доступных версий перед установкой
pip install имя_библиотеки==
Например
pip install pandas==
Установка из файла requirements.txt
Если нужно установить несколько библиотек с конкретными версиями, можно создать requirements.txt
numpy==1.21.0 requests>=2.25,<3.0 pandas==1.3.0И выполнить команду
pip install -r requirements.txt
Ставь 👍 и забирай 📚 Базу знанийFuture или asyncio.Task).
import asyncio
async def fetch_data():
print("Начинаем загрузку данных...")
await asyncio.sleep(2) # Асинхронная пауза (имитирует длительную операцию)
print("Данные загружены!")
return {"data": "some data"}
async def main():
print("Старт программы")
data = await fetch_data()
print(f"Результат: {data}")
print("Конец программы")
# Запуск цикла событий
asyncio.run(main())
🚩Многопоточность
Это способ выполнения нескольких задач одновременно с использованием нескольких потоков. Потоки — это "легковесные" процессы, которые разделяют одну и ту же память, но могут выполняться независимо друг от друга.
🟠Несколько потоков
Программа создает несколько потоков, каждый из которых выполняет свою задачу.
🟠Параллельное выполнение
Если у процессора несколько ядер, потоки могут выполняться действительно параллельно.
🟠Блокирующий код
В отличие от асинхронного подхода, потоки часто блокируются в ожидании завершения операций (например, I/O).
import threading
import time
def task(name):
print(f"Начало задачи {name}")
time.sleep(2) # Имитация длительной операции
print(f"Конец задачи {name}")
# Создаем и запускаем потоки
thread1 = threading.Thread(target=task, args=("A",))
thread2 = threading.Thread(target=task, args=("B",))
thread1.start()
thread2.start()
# Ожидаем завершения потоков
thread1.join()
thread2.join()
print("Все задачи завершены")
Ставь 👍 и забирай 📚 Базу знанийclass MyClass:
def __init__(self):
self.public_attribute = "I am public"
def public_method(self):
return "This is a public method"
obj = MyClass()
print(obj.public_attribute) # Вывод: I am public
print(obj.public_method()) # Вывод: This is a public method
🚩Защищенные методы и атрибуты
Не предназначены для использования за пределами класса и его подклассов. Они обозначаются одним подчеркиванием в начале имени. Это всего лишь соглашение, сигнализирующее другим разработчикам, что такие методы и атрибуты не следует использовать вне класса или его подклассов.
class MyClass:
def __init__(self):
self._protected_attribute = "I am protected"
def _protected_method(self):
return "This is a protected method"
class SubClass(MyClass):
def access_protected(self):
return self._protected_method()
obj = MyClass()
sub_obj = SubClass()
print(sub_obj.access_protected()) # Вывод: This is a protected method
🚩Приватные методы и атрибуты
Скрыты от внешнего доступа и доступны только внутри самого класса. Они обозначаются двумя подчеркиваниями в начале имени. Python реализует это с помощью механизма именования, который изменяет имя метода или атрибута, добавляя к нему имя класса, чтобы затруднить доступ извне.
class MyClass:
def __init__(self):
self.__private_attribute = "I am private"
def __private_method(self):
return "This is a private method"
def access_private(self):
return self.__private_method()
obj = MyClass()
try:
print(obj.__private_attribute)
except AttributeError as e:
print(e) # Вывод: 'MyClass' object has no attribute '__private_attribute'
try:
print(obj.__private_method())
except AttributeError as e:
print(e) # Вывод: 'MyClass' object has no attribute '__private_method'
# Доступ к приватным методам через публичный метод класса
print(obj.access_private()) # Вывод: This is a private method
Ставь 👍 и забирай 📚 Базу знанийkeys), так как доступ к ним O(1).
data = {"name": "Alice", "age": 25, "city": "New York"}
# Проверяем, есть ли ключ "age"
if "age" in data:
print("Ключ найден!")
Вывод
Ключ найден!Не надо проверять так
if data.get("age") is not None: # ❌ Работает, но `in` быстрее
🟠Проверка наличия значения (`in values()`)
Если нужно проверить значение, используем values()
if 25 in data.values():
print("Значение найдено!")
Вывод
Значение найдено!🟠Проверка и ключа, и значения (`items()`) Если нужно проверить пару (ключ, значение)
if ("age", 25) in data.items():
print("Пара (ключ, значение) найдена!")
Ставь 👍 и забирай 📚 Базу знаний+, -, *, and, or, not и т. д.) сами по себе не являются объектами. Они — часть синтаксиса языка и не имеют представления в виде объектов в памяти.
a = 10 + 5 # Оператор "+" выполняет сложение, но сам по себе не объект
print(type(+)) # Ошибка: нельзя получить тип оператора
🟠Ключевые слова (keywords)
Встроенные ключевые слова Python (if, else, while, for, def, class, return и т. д.) не являются объектами. Они зарезервированы интерпретатором и используются для управления потоком выполнения кода.
print(type(if)) # Ошибка: ключевое слово не является объектом
🟠Идентификаторы переменных
Хотя переменные ссылаются на объекты, сами идентификаторы (имена переменных) — это просто ссылки, а не объекты.
x = 42 # x — это имя, а не объект
print(type(x)) # Это целое число, но само имя "x" объектом не является
🟠Аннотации типов во время компиляции
Аннотации типов в Python, такие как list[str], не создают объекты во время компиляции кода. Они интерпретируются только на уровне анализа типов.
def func(x: int) -> str:
return str(x)
Ставь 👍 и забирай 📚 Базу знанийfilter() — это встроенная функция Python, которая отбирает элементы из последовательности по заданному условию.
filter(function, iterable)
🚩Как работает `filter()`?
Пример 1: Фильтрация чётных чисел
numbers = [1, 2, 3, 4, 5, 6]
# Оставляем только чётные числа
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # [2, 4, 6]
Пример 2: Фильтрация строк по длине
words = ["apple", "kiwi", "banana", "cherry"]
# Оставляем только слова длиной больше 5 символов
long_words = filter(lambda word: len(word) > 5, words)
print(list(long_words)) # ['banana', 'cherry']
Пример 3: Фильтрация None и пустых значений
values = [None, 0, "", "hello", 42, [], {}]
# Оставляем только "истинные" значения
filtered_values = filter(None, values)
print(list(filtered_values)) # ['hello', 42]
Пример 4: Использование filter() с def
def is_positive(n):
return n > 0
numbers = [-5, -2, 0, 3, 7, -1]
positive_numbers = filter(is_positive, numbers)
print(list(positive_numbers)) # [3, 7]
🚩Чем `filter()` лучше `for` + `if`?
Более короткий и читаемый код
# С `filter()`
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# С `for` + `if`
even_numbers = [x for x in numbers if x % 2 == 0]
Ставь 👍 и забирай 📚 Базу знаний?id=123).
🟠Поиск ресурса
находит запрашиваемый файл, данные из базы или другой ресурс.
🟠Возврат ответа
отправляет данные клиенту (если ресурс найден — код 200, если нет — 404).
🚩Особенности GET-запроса
🟠Безопасный
не изменяет данные на сервере, используется только для чтения.
🟠Идемпотентный
повторные запросы дают одинаковый результат.
🟠Параметры в URL
данные передаются через строку запроса, что не подходит для конфиденциальной информации.
import requests
response = requests.get("https://api.example.com/data", params={"id": 123})
print(response.text) # Данные с сервера
Ставь 👍 и забирай 📚 Базу знанийpackage) в Python — это набор модулей, объединённых в одну директорию. Главное отличие от обычной папки — наличие файла __init__.py, который делает директорию пакетом.
🚩Как создать пакет?
Допустим, мы хотим создать пакет math_utils с модулями для работы с числами.
/my_project
/math_utils ← Это пакет
__init__.py ← Делаем директорию пакетом
arithmetic.py ← Модуль с функциями сложения/вычитания
geometry.py ← Модуль с функциями для работы с фигурами
main.py ← Основной файл программы
Код в arithmetic.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
Код в geometry.py
def square_area(side):
return side * side
Код в __init__.py
from .arithmetic import add, subtract
from .geometry import square_area
Теперь можно импортировать функции прямо из пакета:
from math_utils import add, square_area
print(add(2, 3)) # 5
print(square_area(4)) # 16
🚩Импорт модулей из пакета
Импортируем весь пакет (с __init__.py)
from math_utils import add, square_area
Импортируем конкретный модуль
from math_utils import arithmetic
print(arithmetic.add(3, 5))
Импортируем конкретную функцию из модуля
from math_utils.arithmetic import add
print(add(3, 5))
🚩Как работают пакеты в Python?
Python ищет пакеты по sys.path
import sys
print(sys.path) # Пути, где Python ищет модули
Если Python не находит пакет, можно добавить путь вручную:
import sys
sys.path.append("/path/to/my_project")
Можно создавать вложенные пакеты
/my_project
/math_utils
__init__.py
/advanced
__init__.py
calculus.py
Импорт:
from math_utils.advanced.calculus import derivative
Ставь 👍 и забирай 📚 Базу знаний