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
🛑Список создаётся с использованием квадратных скобок []. Элементы могут быть любого типа и разделяются запятыми. Для добавления элемента в список используется метод 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
🔵Атрибуты класса принадлежат самому классу и разделяются всеми его экземплярами. Они определяются на уровне класса и доступны через имя класса или экземпляра. Атрибуты объекта принадлежат конкретному экземпляру и определяются в методах, обычно в __init__.


class MyClass:
class_attr = "Class Attribute" # Атрибут класса

def __init__(self):
self.instance_attr = "Instance Attribute" # Атрибут объекта


Атрибуты класса общие для всех экземпляров, а атрибуты объекта уникальны для каждого экземпляра.

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

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


x = 42
print(type(x)) # Выведет <class 'int'>


Если передать три аргумента, type() создаёт новый тип: имя, базовые классы и словарь атрибутов. Например, MyClass = type('MyClass', (object,), {'attr': 42}) создаёт новый класс.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🟡Для создания асинхронной задачи используется ключевое слово async перед определением функции. Запуск асинхронной задачи выполняется с помощью await внутри другой асинхронной функции или через asyncio.run().


import asyncio

async def my_task():
print("Задача выполняется")
await asyncio.sleep(1)

asyncio.run(my_task())


Функция asyncio.run() запускает асинхронную задачу и управляет циклом событий.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔘Оператор присваивания = связывает имя переменной с объектом в памяти. При присваивании создается ссылка на объект, а не копия.


a = 10 # переменная a ссылается на целое число 10
b = a # b ссылается на тот же объект, что и a


Если изменяемый объект модифицируется через одну переменную, это отразится на другой:


lst1 = [1, 2]
lst2 = lst1
lst1.append(3) # изменение через lst1
print(lst2) # [1, 2, 3], так как lst2 ссылается на тот же список


Для изменяемых типов иногда требуется создание копии, чтобы избежать неожиданных изменений.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Цикл for перебирает элементы множества в произвольном порядке, так как множества неупорядочены. Можно использовать для проверки наличия элементов, фильтрации или преобразования данных.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Функция 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.

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

✈️ Python собеседования
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 для всех операций ввода-вывода.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Чтобы вызвать метод родительского класса из дочернего, используется функция super(), которая возвращает прокси-объект родительского класса. Например, super().method_name() вызывает метод method_name родительского класса из дочернего.

✈️ Python собеседования
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 значение. Важно, чтобы обёртка сама возвращала генератор, иначе потеряется ленивое выполнение.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🟠Множество создаётся с помощью фигурных скобок {} или функции set(). Элементы должны быть уникальными и неизменяемыми.


unique_numbers = {1, 2, 3} # Литерал множества
empty_set = set() # Пустое множество (не {} — это словарь)


Для преобразования списка или строки во множество используется set(), автоматически удаляющий дубликаты.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для управления CORS в Python веб-приложениях используются middleware или специализированные пакеты, такие как flask-cors для Flask или django-cors-headers для Django. Эти инструменты позволяют настраивать разрешённые домены, методы HTTP-запросов и заголовки для кросс-доменных запросов.

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


class Resource:
def __del__(self):
print("Resource released") # Вызывается не всегда


Лучше использовать контекстные менеджеры (with) или явные методы типа close() для управления ресурсами.

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

✈️ Python собеседования
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


Альтернатива оператору **, но с поддержкой модульной арифметики.

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

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

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