Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
zip()
объединяет элементы нескольких итерируемых объектов попарно, создавая итератор кортежей. Работает до исчерпания самой короткой коллекции.
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]
for name, age in zip(names, ages):
print(name, age)
Результат:
Alice 25
Bob 30
Для обработки всех элементов, включая непарные, можно использовать
zip_longest
из модуля itertools
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
try-except
позволяет перехватывать и обрабатывать ошибки ввода-вывода, такие как FileNotFoundError
или PermissionError
.
try:
with open('file.txt', 'r') as file:
data = file.read()
except FileNotFoundError:
print("Файл не найден")
except IOError:
print("Ошибка чтения файла")
Блок
try
выполняет потенциально опасный код, а except
ловит конкретные исключения. Можно обрабатывать несколько типов ошибок или использовать общий except IOError
для всех операций ввода-вывода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
def log_generator(func):
def wrapper(*args, **kwargs):
print("Generator started")
gen = func(*args, **kwargs)
for value in gen:
print(f"Yielded: {value}")
yield value
return wrapper
@log_generator
def count_to(n):
for i in range(n):
yield i
Декоратор
log_generator
перехватывает вызов генератора, логирует его запуск и каждое yielded значение. Важно, чтобы обёртка сама возвращала генератор, иначе потеряется ленивое выполнение.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
{}
или функции set()
. Элементы должны быть уникальными и неизменяемыми.
unique_numbers = {1, 2, 3} # Литерал множества
empty_set = set() # Пустое множество (не {} — это словарь)
Для преобразования списка или строки во множество используется
set()
, автоматически удаляющий дубликаты.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Метод
Лучше использовать контекстные менеджеры (with) или явные методы типа
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__del__()
вызывается при удалении объекта сборщиком мусора, но его выполнение не гарантируется и зависит от реализации интерпретатора. Не рекомендуется полагаться на него для критически важных операций, таких как освобождение ресурсов.
class Resource:
def __del__(self):
print("Resource released") # Вызывается не всегда
Лучше использовать контекстные менеджеры (with) или явные методы типа
close()
для управления ресурсами.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
pow()
принимает два или три аргумента: основание, степень и необязательный модуль. Возвращает результат возведения в степень, а при наличии модуля — остаток от деления.
result = pow(2, 3) # 2 в степени 3 → 8
mod_result = pow(2, 3, 3) # (2³) % 3 → 2
Альтернатива оператору
**
, но с поддержкой модульной арифметики.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
класс django.db.models
.Model, где атрибуты класса представляют поля таблицы. Каждое поле создаётся экземпляром соответствующего класса (CharField, Intege
rField и т.д.) с указанием параметров.
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
После определения модели необходимо создать и применить миграции для генерации таблицы в БД.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔1
from django.http import JsonResponse
def get_data(request):
return JsonResponse({'data': 'success'}, status=200) # Успешный запрос
Использование правильных статусов улучшает согласованность API и обработку ошибок.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
def test_addition():
assert 2 + 2 == 4 # Простой assert для проверки логики
Использование
setup
и teardown
методов помогает подготовить и очистить окружение. Моки и стабы изолируют тестируемый модуль от зависимостей.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для установки пакета через pip используется команда
Флаг
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pip install
с указанием имени пакета и опционально версии.
pip install requests # Установка последней версии
pip install django==4.2 # Конкретная версия
pip install -r requirements.txt # Установка из файла
Флаг
--user
устанавливает пакет для текущего пользователя, -e
- в режиме разработки.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
class SubsystemA:
def operation_a(self):
return "Subsystem A"
class Facade:
def __init__(self):
self._subsystem_a = SubsystemA()
def operation(self):
return f"Facade: {self._subsystem_a.operation_a()}"
Клиент работает только с Facade, не зная о внутренней реализации. Упрощает использование сложных систем.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
authlib
или oauthlib
, интегрирующиеся с популярными фреймворками.
from authlib.integrations.flask_client import OAuth
oauth = OAuth(app)
oauth.register(name='google', client_id='...', client_secret='...')
Настройка включает регистрацию приложения у провайдера, обработку callback-URL и проверку токенов. Для FastAPI/Django существуют аналогичные решения.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
asyncio.create_task()
запускает корутину как асинхронную задачу, позволяя ей выполняться конкурентно. Возвращает объект Task
, который можно использовать для отмены или ожидания завершения.
import asyncio
async def background_task():
await asyncio.sleep(1)
task = asyncio.create_task(background_task())
Задачи автоматически добавляются в цикл событий и выполняются без блокировки основного потока.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
def calculate_sum(a, b):
"""
Adds two numbers and returns the result.
Args:
a (int): First number
b (int): Second number
Returns:
int: Sum of a and b
"""
return a + b
Особенности:
- Доступна через
help(calculate_sum)
или __doc__
- Автоматически подхватывается IDE и генераторами документации
- Рекомендуется для публичных API и сложной логики
PEP 257 описывает стандарты оформления docstrings.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9