Python собеседования
1.95K subscribers
340 photos
453 links
Подготовка к собеседованиям на позицию Python-разработчик

Еще больше на сайте https://frontview-it.ru

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
➡️ Функция isinstance() позволяет проверить, принадлежит ли объект к определенному классу или типу. Это полезно для проверки типов данных и обработки различных случаев в коде.

Синтаксис:

isinstance(object, classinfo)


- object — объект, тип которого проверяется.
- classinfo — класс, тип или кортеж классов/типов для проверки.

Пример:

value = 42
if isinstance(value, int):
print("Это целое число")
elif isinstance(value, (float, str)):
print("Это либо float, либо строка")


Функция возвращает True, если объект является экземпляром указанного класса или одного из классов в кортеже. Это удобно для проверки типов без явного сравнения через type().

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Распаковка кортежей позволяет извлечь элементы кортежа в отдельные переменные. Количество переменных должно совпадать с количеством элементов кортежа, иначе возникнет ошибка.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👉 Наследование — это механизм, позволяющий создавать новый класс на основе существующего. Новый класс (дочерний) наследует атрибуты и методы родительского класса, что способствует повторному использованию кода и организации иерархии.

Синтаксис:

class ParentClass:
def __init__(self, value):
self.value = value

class ChildClass(ParentClass):
def display(self):
print(f"Value: {self.value}")


- ParentClass — родительский класс.
- ChildClass — дочерний класс, который наследует атрибуты и методы ParentClass.

Дочерний класс может переопределять методы родительского или добавлять новые. Например, метод __init__ можно расширить:

class ChildClass(ParentClass):
def __init__(self, value, extra):
super().__init__(value)
self.extra = extra


Здесь super() используется для вызова метода родительского класса.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Кортежи и списки — это встроенные структуры данных в Python, но они имеют ключевые различия.

1️⃣ Кортежи (tuple) неизменяемы, то есть после создания их элементы нельзя изменить, добавить или удалить. Это делает кортежи более безопасными для данных, которые не должны изменяться. Кортежи создаются с помощью круглых скобок: my_tuple = (1, 2, 3).

2️⃣ Списки (list) изменяемы, что позволяет добавлять, удалять или изменять элементы. Списки создаются с помощью квадратных скобок: my_list = [1, 2, 3].

✏️ Из-за неизменяемости кортежи могут быть более производительными и использоваться в качестве ключей в словарях, в отличие от списков. Выбор между кортежами и списками зависит от необходимости изменения данных.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔹В Python переменная, которая не инициализирована, не существует в текущей области видимости. Попытка доступа к такой переменной вызовет исключение NameError. Это происходит, потому что интерпретатор не может найти ссылку на переменную в памяти.


print(x) # NameError: name 'x' is not defined


В данном примере переменная x не была создана, поэтому попытка её использования приводит к ошибке. Важно всегда инициализировать переменные перед их использованием, чтобы избежать подобных ошибок.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Модуль os предоставляет функции для работы с файловой системой, такие как создание, удаление, переименование файлов и директорий, а также получение информации о них. С его помощью можно управлять путями, проверять существование файлов и выполнять другие операции, связанные с файловой системой.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
😎Анонимные функции — это функции, которые определяются без имени с помощью ключевого слова lambda. Они используются для создания простых функций "на лету", когда нет необходимости объявлять их через def.


multiply = lambda x, y: x * y
print(multiply(3, 4)) # 12


Анонимные функции часто применяются в сочетании с функциями высшего порядка, такими как map, filter или sorted, для выполнения операций над коллекциями. Они ограничены одной строкой выражения и не поддерживают сложные конструкции, такие как циклы или условия.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Функция help() используется для получения справочной информации о модулях, классах, функциях и других объектах. Достаточно передать объект в help(), и будет выведена документация, если она доступна.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🟠В Python блок except используется для обработки исключений, которые могут возникнуть в блоке try. Если в try происходит ошибка, выполнение переходит в соответствующий except, где можно обработать исключение.

Блок finally выполняется всегда, независимо от того, возникло исключение или нет. Он используется для выполнения обязательных действий, таких как освобождение ресурсов, даже если в try произошла ошибка.


try:
result = 10 / 0
except ZeroDivisionError:
print("Деление на ноль")
finally:
print("Это выполнится в любом случае")


В данном примере сначала сработает except, так как происходит деление на ноль, а затем finally, который выполнится независимо от наличия ошибки.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
➡️Метод __str__() предназначен для возврата читаемого строкового представления объекта, которое используется, например, при вызове print() или str(). Он должен быть ориентирован на удобство для пользователя.

Метод __repr__() возвращает однозначное и информативное строковое представление объекта, которое часто используется для отладки. Если __str__() не определён, по умолчанию вызывается __repr__().


class Example:
def __str__(self):
return "Читаемое представление"

def __repr__(self):
return "Пример: информативное представление"


При вызове print(Example()) выведется "Читаемое представление", а при вызове repr(Example()) — "Пример: информативное представление".

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Генераторное выражение создаётся с использованием синтаксиса, похожего на списковое включение, но вместо квадратных скобок используются круглые. Оно возвращает итератор, который генерирует элементы на лету, что экономит память.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
▶️Для создания кортежа с одним элементом необходимо добавить запятую после этого элемента, даже если он один. Без запятой выражение будет воспринято как обычное значение, а не как кортеж.


single_element_tuple = (42,)


В данном примере single_element_tuple будет кортежем с одним элементом 42. Если запятую убрать, например, (42), это будет просто число, а не кортеж.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🟠 Функция sorted() возвращает новый отсортированный список из итерируемого объекта. Она принимает параметры: сам итерируемый объект, key для определения функции сортировки и reverse для указания порядка сортировки.


numbers = [3, 1, 4, 1, 5, 9]

# Сортировка по возрастанию
sorted_numbers = sorted(numbers)

# Сортировка по убыванию
sorted_numbers_desc = sorted(numbers, reverse=True)

# Сортировка строк по длине
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=len)


Параметр key позволяет задавать пользовательскую логику сортировки, а reverse определяет направление.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
😊Функция round() округляет число до указанного количества знаков после запятой. Принимает два аргумента: число для округления и количество знаков после запятой (по умолчанию 0). Если количество знаков не указано, число округляется до ближайшего целого.


result = round(3.14159, 2) # Округляет до 3.14


Если количество знаков отрицательное, округление происходит до десятков, сотен и т.д. Например, round(12345, -2) вернёт 12300.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Синхронный код выполняется последовательно, каждая операция блокирует выполнение до своего завершения. Асинхронный код позволяет выполнять задачи параллельно, не блокируя основной поток, что особенно полезно для операций, связанных с ожиданием, например, ввод-вывод.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🟠SQLAlchemy — это библиотека для работы с базами данных, которая поддерживает ORM (объектно-реляционное отображение) и SQL-запросы. Для начала работы необходимо создать подключение к базе данных с помощью create_engine(), затем определить модели данных через классы, наследуемые от Base.


from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///example.db')
Base = declarative_base()

class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)


После создания моделей можно выполнять запросы через сессию, используя Session. Например, добавление данных: session.add(User(name='Alice')) и фиксация изменений: session.commit().

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
*️⃣Модели в Django представляют собой классы Python, которые описывают структуру таблиц в базе данных. Каждый атрибут класса модели соответствует полю в таблице. Django автоматически создаёт SQL-запросы для работы с базой данных на основе этих моделей.


from django.db import models

class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
published_date = models.DateTimeField(auto_now_add=True)


Модель Article создаст таблицу с полями title, content и published_date. Для работы с данными используются методы ORM, например, Article.objects.create(title="Example") для добавления записи.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Профилирование кода — это процесс анализа производительности программы для выявления узких мест, таких как медленные функции или операции, потребляющие много ресурсов. Оно помогает оптимизировать код, улучшая его скорость и эффективность.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Основные инструменты для управления зависимостями включают pip для установки пакетов, virtualenv для создания изолированных окружений и requirements.txt для фиксации списка зависимостей. Также популярны pipenv и poetry, которые объединяют управление зависимостями и виртуальными окружениями.


# requirements.txt
flask==2.0.1
requests>=2.26.0


pipenv и poetry используют файлы Pipfile и pyproject.toml соответственно, что упрощает управление зависимостями и их версиями.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🟢Паттерны проектирования — это типовые решения распространённых проблем в разработке программного обеспечения. Они предоставляют готовые подходы к организации кода, что упрощает его поддержку, расширение и повторное использование.


class Singleton:
_instance = None

def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance


Например, паттерн Singleton гарантирует, что класс имеет только один экземпляр. Это полезно для управления общими ресурсами, такими как подключения к базе данных.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3