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

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

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Паттерн Builder используется для пошагового создания сложных объектов. Он позволяет отделить процесс конструирования объекта от его представления. В Python можно реализовать этот паттерн, используя классы и методы для поэтапного построения объекта.


class Product:
def __init__(self):
self.parts = []

def add(self, part):
self.parts.append(part)

def show(self):
return ', '.join(self.parts)

class Builder:
def __init__(self):
self.product = Product()

def build_part_a(self):
self.product.add("Part A")

def build_part_b(self):
self.product.add("Part B")

def get_result(self):
return self.product

# Пример использования
builder = Builder()
builder.build_part_a()
builder.build_part_b()
product = builder.get_result()
print(product.show()) # Вывод: Part A, Part B


Этот код демонстрирует создание объекта Product с помощью Builder, который добавляет части поэтапно.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4
👉 Если исключение не будет обработано, программа завершится с ошибкой. Это приведет к выводу трассировки стека, которая показывает последовательность вызовов функций, приведших к ошибке. Это может быть полезно для отладки, но в продакшн-коде нужно обрабатывать исключения, чтобы избежать неожиданного завершения программы и предоставить пользователю более понятное сообщение об ошибке.


def divide(a, b):
return a / b

# Вызов функции с делением на ноль
result = divide(10, 0)


В этом случае программа завершится с ZeroDivisionError.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥21
asyncio.run() используется для запуска основной асинхронной функции и управления событием, обеспечивая автоматическое создание и завершение цикла событий. Это упрощает запуск асинхронного кода, гарантируя, что все задачи завершены до выхода из программы.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2
return и yield — ключевые слова, используемые для возврата значений из функций, но с разными целями.

😎return завершает выполнение функции и возвращает значение. После return выполнение функции прекращается.

def example_return():
return 42 # Возвращает 42 и завершает функцию


😎yield используется в генераторах и позволяет функции возвращать значение, приостанавливая её выполнение. При следующем вызове выполнение продолжается с места остановки.

def example_yield():
yield 42 # Возвращает 42, но не завершает функцию
yield 43 # Возвращает 43 при следующем вызове


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍204
Существует несколько способов сделать это:

1️⃣ Использование метода list.copy():
original_list = [1, 2, 3]
copied_list = original_list.copy()
# Создает поверхностную копию списка


2️⃣ Использование срезов:
original_list = [1, 2, 3]
copied_list = original_list[:]
# Создает поверхностную копию списка


3️⃣ Использование функции list():
original_list = [1, 2, 3]
copied_list = list(original_list)
# Создает поверхностную копию списка


Каждый из этих методов создает поверхностную копию, что означает, что изменения в вложенных объектах отразятся в обеих копиях.

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

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

Пример использования:


x = 10
y = 20

def show_globals():
# Получение глобальных переменных
global_vars = globals()
# Вывод значения переменной x
print(global_vars['x']) # Выведет 10

show_globals()


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

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👀21
📌 Функция format() используется для форматирования строк, позволяя вставлять значения в строку с помощью плейсхолдеров {}. Она поддерживает позиционные и именованные аргументы, а также предоставляет возможность задавать форматирование для чисел, дат и других типов данных.

Пример использования:


name = "Alice"
age = 30
formatted_string = "Имя: {}, Возраст: {}".format(name, age)
print(formatted_string) # Вывод: Имя: Alice, Возраст: 30


Также можно использовать именованные аргументы:


formatted_string = "Имя: {name}, Возраст: {age}".format(name="Bob", age=25)
print(formatted_string) # Вывод: Имя: Bob, Возраст: 25


Функция format() позволяет гибко управлять выводом данных, делая код более читаемым и поддерживаемым.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥32🤩1
Оператор break используется для выхода из цикла for или while, прерывая его выполнение, когда выполнено определенное условие. Его часто применяют для оптимизации работы цикла, чтобы избежать ненужных итераций после достижения нужного результата.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
🔥 F-строки — это удобный способ форматирования строк, представленный в версии 3.6. Они позволяют встраивать выражения Python прямо в строковые литералы, что делает код более читаемым и лаконичным.

Для создания f-строки используется префикс f перед строкой. Внутри строки выражения заключаются в фигурные скобки {}.

name = "Alice"
age = 30
# Вставка переменных в строку
info = f"My name is {name} and I am {age} years old."
print(info) # Вывод: My name is Alice and I am 30 years old.


F-строки поддерживают любые выражения, включая вызовы функций и операции:

# Вызов функции внутри f-строки
result = f"The sum of 2 and 3 is {2 + 3}."
print(result) # Вывод: The sum of 2 and 3 is 5.


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥2
Среди популярных ORM выделяются SQLAlchemy, Django ORM и Peewee. SQLAlchemy предоставляет мощные возможности для работы с базами данных, Django ORM интегрирован в Django и удобен для веб-приложений, а Peewee — это легковесная и простая в использовании ORM.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
🟥 Для преобразования строки в число используется функция int() для целых чисел и float() для чисел с плавающей точкой:


# Преобразование строки в целое число
num = int("42")

# Преобразование строки в число с плавающей точкой
flt = float("3.14")


Для обратного преобразования, из числа в строку, применяется функция str():


# Преобразование целого числа в строку
num_str = str(42)

# Преобразование числа с плавающей точкой в строку
flt_str = str(3.14)


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2💯2
Закрытие файла освобождает системные ресурсы и гарантирует, что все данные записаны на диск. Это достигается вызовом метода close() или использованием конструкции with, которая автоматически закрывает файл после завершения блока кода.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Ключевое слово raise используется для генерации исключений. Оно позволяет прервать выполнение программы и передать управление обработчику исключений.

Пример использования raise для генерации стандартного исключения:


# Генерация исключения ValueError с сообщением
raise ValueError("Некорректное значение")


Можно также создавать пользовательские исключения, наследуя от класса Exception:


# Определение пользовательского исключения
class CustomError(Exception):
pass

# Генерация пользовательского исключения
raise CustomError("Это пользовательская ошибка")


Использование raise помогает управлять ошибками и улучшает читаемость кода.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
✔️ Перебор ключей и значений словаря можно осуществить с помощью метода items(). Этот метод возвращает представление словаря в виде пар (ключ, значение), что позволяет удобно итерироваться по ним в цикле for.


# Создание словаря
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Перебор ключей и значений
for key, value in my_dict.items():
# Вывод ключа и значения
print(f"Ключ: {key}, Значение: {value}")


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍231
Assert используется для отладки кода, проверяя истинность выражений: если условие ложно, генерируется исключение AssertionError, что помогает быстро выявлять ошибки. Это особенно полезно для тестирования предположений в коде и обеспечения корректности выполнения программы.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
🔥 Модуль importlib предоставляет возможность программно импортировать модули. Это полезно, когда необходимо динамически загружать модули во время выполнения программы.


import importlib

# Импорт модуля math
math_module = importlib.import_module('math')

# Использование функции из импортированного модуля
result = math_module.sqrt(16)
print(result) # Вывод: 4.0


importlib.import_module() принимает строку с именем модуля и возвращает объект модуля, что позволяет вызывать его функции и использовать его переменные.

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

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