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

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

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Функция 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
Неизменяемый тип данных — это тип, объекты которого нельзя изменить после создания. Любая операция, которая якобы изменяет объект, на самом деле создаёт новый объект.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🟢Функция range() генерирует последовательность чисел, которая часто используется в циклах for для итерации. Она может принимать один, два или три аргумента: старт, стоп и шаг.


for i in range(5):
print(i) # Выведет числа от 0 до 4


Если указаны два аргумента, например, range(2, 6), цикл начнётся с 2 и закончится на 5. Третий аргумент задаёт шаг: range(1, 10, 2) выведет нечётные числа от 1 до 9.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
🛑Список создаётся с использованием квадратных скобок []. Элементы могут быть любого типа и разделяются запятыми. Для добавления элемента в список используется метод append().


my_list = [1, 2, 3]
my_list.append(4) # Добавляет 4 в конец списка


Также можно использовать метод insert() для добавления элемента на определённую позицию. Например, my_list.insert(1, 10) добавит число 10 на вторую позицию.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🤔1
🛑Для возврата нескольких значений из функции можно использовать кортеж. Достаточно перечислить значения через запятую в операторе return, и они будут автоматически упакованы в кортеж.


def get_values():
return 1, 2, 3

result = get_values() # Возвращает кортеж (1, 2, 3)


Также можно явно указать возвращаемые структуры, например, список или словарь, в зависимости от задачи.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔹Для перехвата нескольких типов исключений можно использовать несколько блоков except или перечислить исключения в одном блоке через кортеж. Это позволяет обрабатывать разные ошибки по отдельности или совместно.


try:
result = 10 / 0
except (ZeroDivisionError, TypeError) as e:
print(f"Произошла ошибка: {e}")


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

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

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

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