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
Функция lambda используется для создания анонимных функций, которые могут быть определены в одной строке и применяются для простых операций. Она часто используется в сочетании с функциями высшего порядка, такими как map, filter или sorted, для краткости и удобства.

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


try:
result = 10 / 0 # Попытка деления на ноль
except ZeroDivisionError:
result = "Ошибка: деление на ноль" # Обработка исключения
print(result) # Выведет "Ошибка: деление на ноль


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

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

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


list1 = [1, 2, 3]
list2 = [4, 5]
list1.extend(list2) # Добавляет элементы из list2 в list1
print(list1) # Результат: [1, 2, 3, 4, 5]


Этот метод изменяет исходный список и не возвращает новый.

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

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

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


def generate_numbers():
for i in range(3):
yield i # Возвращает значение и приостанавливает выполнение

for num in generate_numbers():
print(num) # Поочередно выведет 0, 1, 2


Генераторы экономят память, так как элементы создаются "на лету".

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍522
🟢Основные принципы проектирования RESTful API включают использование HTTP-методов (GET, POST, PUT, DELETE) для выполнения операций CRUD, уникальных идентификаторов ресурсов (URI) и представление данных в форматах, таких как JSON или XML.

API должен быть stateless (не сохранять состояние клиента между запросами) и поддерживать кэширование для повышения производительности. Также важно использовать коды состояния HTTP для информирования клиента о результате запроса.


# Пример URI для ресурса
/users # GET — получить список пользователей
/users/1 # GET — получить данные пользователя с ID 1


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
➡️ Паттерн Decorator позволяет динамически добавлять поведение объекту, не изменяя его исходный код. Реализуется через создание класса-декоратора, который принимает объект и расширяет его функциональность.


class Component:
def operation(self):
return "Component"

class Decorator(Component):
def __init__(self, component):
self._component = component

def operation(self):
return f"Decorator({self._component.operation()})"


Декоратор оборачивает объект и добавляет новое поведение до или после вызова его методов.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
👉 Функция getattr() позволяет получать значение атрибута объекта по его имени, переданному в виде строки. Это полезно, когда имя атрибута неизвестно заранее или динамически изменяется.

Синтаксис:

getattr(object, name[, default])


- object — объект, атрибут которого нужно получить.
- name — строка, имя атрибута.
- default — опциональное значение, которое возвращается, если атрибут не найден. Если не указано, выбрасывается AttributeError.

Пример:

class Example:
value = 42

obj = Example()
attribute_name = 'value'
result = getattr(obj, attribute_name) # Получаем значение атрибута 'value'
print(result) # 42


Если атрибут отсутствует, можно вернуть значение по умолчанию:

result = getattr(obj, 'unknown', 'default_value') # 'default_value'


Использование getattr() упрощает работу с динамическими атрибутами и делает код более гибким.

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

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

Пример декоратора для логирования:

import logging

logging.basicConfig(level=logging.INFO)

def log_function_call(func):
def wrapper(*args, **kwargs):
logging.info(f"Calling {func.__name__} with args: {args}, kwargs: {kwargs}")
result = func(*args, **kwargs)
logging.info(f"{func.__name__} returned: {result}")
return result
return wrapper

@log_function_call
def add(a, b):
return a + b

add(2, 3)


- Декоратор log_function_call логирует начало вызова функции, переданные аргументы и результат выполнения.
- Использование @log_function_call перед функцией автоматически добавляет логирование.

Такой подход упрощает добавление логирования в любую функцию, делая код чище и поддерживаемым.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
Функция sum() вычисляет сумму элементов итерируемого объекта, такого как список, кортеж или множество, принимая только числовые значения. Вторым аргументом можно передать начальное значение, которое будет добавлено к результату.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
➡️Метод pop() используется для удаления и возврата элемента из списка по указанному индексу. Если индекс не указан, удаляется последний элемент.

Синтаксис:

list.pop([index])


- index — опциональный параметр, указывающий позицию элемента. Если не указан, по умолчанию используется -1 (последний элемент).

Пример:

numbers = [1, 2, 3, 4]
removed_element = numbers.pop(1) # Удаляет элемент с индексом 1
print(numbers) # [1, 3, 4]
print(removed_element) # 2


Если список пуст или индекс выходит за пределы, возникает IndexError.

Использование pop() удобно для работы со стеками и удаления элементов с сохранением их значений.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
➡️ Для обработки исключений в асинхронном коде используется конструкция try/except вместе с ключевым словом await. Это позволяет перехватывать ошибки, возникающие при выполнении асинхронных операций.


async def fetch_data():
try:
response = await some_async_function()
return response
except SomeSpecificError as e:
print(f"An error occurred: {e}")
except Exception as e:
print(f"Unexpected error: {e}")


Если асинхронная функция вызывает исключение, оно будет перехвачено в блоке except. Это особенно полезно при работе с сетевыми запросами или другими операциями, где возможны сбои.

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

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

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


result = abs(-10) # Вернет 10


Для комплексных чисел abs() возвращает величину (модуль) числа:


result = abs(3 + 4j) # Вернет 5.0


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
🔘Для проверки наличия элемента в списке используется оператор in. Он возвращает True, если элемент найден, и False, если нет.


fruits = ['apple', 'banana', 'orange']
print('banana' in fruits) # True
print('grape' in fruits) # False


Для проверки отсутствия элемента можно использовать not in:

print('grape' not in fruits) # True


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

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

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


empty_tuple = () # Пустой кортеж
single_element_tuple = (42,) # Кортеж с одним элементом
multiple_elements_tuple = (1, 2, 3) # Кортеж с несколькими элементами


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

another_tuple = 4, 5, 6


Кортежи неизменяемы, поэтому после создания их элементы нельзя изменить.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
async и await используются для работы с асинхронным кодом. Они позволяют писать неблокирующие операции, что особенно полезно для задач, связанных с вводом-выводом (например, сетевые запросы).

async
Определяет асинхронную функцию. Такая функция возвращает корутину, которая может быть приостановлена и возобновлена.

async def fetch_data():
return "data"


await
Используется внутри асинхронной функции для ожидания результата другой асинхронной операции. Код после await выполняется только после завершения ожидаемой задачи.

async def main():
result = await fetch_data()
print(result)


Асинхронные функции вызываются через asyncio.run или внутри других асинхронных функций. Они позволяют эффективно управлять множеством задач без блокировки основного потока.

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

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