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
🔥 Как вызвать функцию в Python?

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

Синтаксис вызова функции:


имя_функции(аргумент1, аргумент2, ...)


Пример определения и вызова функции:


def greet(name):
return f"Hello, {name}!"

message = greet("Alice")
print(message) # Вывод: Hello, Alice!


В этом примере функция greet принимает один аргумент name и возвращает приветственное сообщение. Функция вызывается с аргументом "Alice", результат сохраняется в переменной message и выводится на экран.

Вызов функции без аргументов:


def say_hello():
print("Hello!")

say_hello() # Вывод: Hello!


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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🔥 Что такое event loop и как его запускать?

Event loop в Python управляет выполнением асинхронных задач, обеспечивая их неблокирующее выполнение. Он является центральным элементом библиотеки asyncio, позволяя обрабатывать множество операций ввода-вывода одновременно без создания новых потоков.

Основные аспекты event loop:

- Управление задачами: Планирует и выполняет корутины.
- Неблокирующий ввод-вывод: Позволяет эффективно использовать ресурсы при работе с сетевыми запросами, файлами и другими операциями ввода-вывода.
- Синхронизация: Обрабатывает события и сигналы, обеспечивая синхронность между задачами.

Запуск event loop:

Для запуска event loop используется функция asyncio.run(), которая выполняет корутину до её завершения.

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


import asyncio

async def greet():
await asyncio.sleep(1)
print("Hello, World!")

asyncio.run(greet())


В этом примере корутина greet ждет одну секунду, а затем выводит сообщение. Функция asyncio.run() запускает event loop, выполняя корутину до завершения.

Использование event loop позволяет создавать эффективные асинхронные приложения, способные обрабатывать множество задач одновременно, что особенно важно в современных веб-сервисах и сетевых приложениях.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔥 Что такое ORM и какие связанные с этим библиотеки существуют в Python?

ORM (Object-Relational Mapping) в Python позволяет взаимодействовать с базами данных, используя объекты вместо прямых SQL-запросов. Это упрощает разработку, делая код более читаемым и поддерживаемым.

Основные библиотеки ORM в Python:

- SQLAlchemy: одна из самых мощных и гибких библиотек ORM, поддерживает сложные запросы и транзакции.


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

Base = declarative_base()

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

engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

new_user = User(name='Alice')
session.add(new_user)
session.commit()


- Django ORM: интегрирован в веб-фреймворк Django, обеспечивает простоту использования и высокую интеграцию с другими компонентами фреймворка.

- Peewee: легковесный ORM, подходящий для небольших проектов и простых приложений.

Использование ORM повышает эффективность разработки, позволяя фокусироваться на логике приложения, а не на деталях взаимодействия с базой данных.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🔥 Что такое тестирование программного обеспечения и зачем оно нужно?

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

Основные виды тестирования:

- Юнит-тестирование: проверка отдельных компонентов или функций.


import unittest

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

class TestAdd(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)

if __name__ == '__main__':
unittest.main()


- Интеграционное тестирование: проверка взаимодействия между модулями.

Популярные библиотеки для тестирования в Python:

- unittest: стандартный модуль для написания тестов.
- pytest: мощный инструмент с расширенными возможностями.
- nose: облегчает запуск тестов и их организацию.

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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🔥 Как профилировать код в Python?

Профилирование кода в Python помогает выявить узкие места и оптимизировать производительность. Один из популярных инструментов для этого — модуль cProfile, который входит в стандартную библиотеку Python.

Для начала профилирования нужно импортировать модуль и использовать его для запуска кода:


import cProfile

def my_function():
# код, который нужно профилировать
pass

cProfile.run('my_function()')


Этот код выведет статистику по времени выполнения каждой функции.

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


import pstats

p = pstats.Stats('output_file')
p.sort_stats('cumulative').print_stats(10)


Также стоит обратить внимание на библиотеку line_profiler, которая позволяет профилировать код построчно. Она требует установки через pip install line_profiler и использования декоратора @ profile для функций, которые нужно профилировать.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
🔥 Как использовать модуль re для поиска шаблонов в строках?

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

Для поиска шаблона в строке используется функция re.search(). Она возвращает объект Match, если шаблон найден, или None, если нет:


import re

pattern = r'\d+' # шаблон для поиска чисел
text = 'There are 42 apples'
match = re.search(pattern, text)

if match:
print(f"Found: {match.group()}")


Для поиска всех вхождений шаблона используется re.findall(), которая возвращает список всех совпадений:


matches = re.findall(pattern, text)
print(matches) # ['42']


Чтобы заменить шаблон на другой текст, применяется re.sub():


new_text = re.sub(r'apples', 'oranges', text)
print(new_text) # 'There are 42 oranges'


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🔥 Что такое протокол TCP/IP?

TCP/IP (Transmission Control Protocol/Internet Protocol) — это набор сетевых протоколов, который используется для передачи данных в интернете и других сетях. Он обеспечивает стандарты и правила, необходимые для обмена данными между компьютерами.

TCP/IP состоит из нескольких уровней:

1. Уровень прикладных программ: обеспечивает взаимодействие между приложениями и сетевыми службами. Примеры протоколов: HTTP, FTP, SMTP.

2. Транспортный уровень: отвечает за надежную передачу данных. Протокол TCP обеспечивает установление соединения и контроль целостности данных, в то время как UDP (User Datagram Protocol) предлагает более простой и быстрый способ передачи без установления соединения.

3. Сетевой уровень: отвечает за маршрутизацию пакетов данных. Протокол IP (Internet Protocol) определяет адресацию и маршрутизацию пакетов между узлами сети.

4. Канальный уровень: обеспечивает передачу данных между соседними узлами в одной сети. Включает в себя такие технологии, как Ethernet и Wi-Fi.

TCP/IP является основой для работы интернета, обеспечивая стандартизированный способ передачи данных между устройствами.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
🔥 Как парсить XML-файлы в Python?

Для парсинга XML-файлов в Python часто используется модуль xml.etree.ElementTree, который входит в стандартную библиотеку.

Чтобы начать работу, необходимо импортировать модуль и загрузить XML-файл:


import xml.etree.ElementTree as ET

tree = ET.parse('file.xml')
root = tree.getroot()


root представляет корневой элемент XML-документа. Для доступа к элементам и их атрибутам можно использовать методы find(), findall() и iter():


for child in root:
print(child.tag, child.attrib)

specific_element = root.find('element_name')
print(specific_element.text)


Для создания нового XML-документа или модификации существующего можно использовать методы Element, SubElement и ElementTree:


new_element = ET.Element('new_element')
root.append(new_element)

tree.write('new_file.xml')


Этот модуль позволяет эффективно работать с XML-структурами в Python.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🔥 Что такое логирование?

Логирование — это процесс записи информации о работе программы, который помогает в диагностике и отладке. В Python для логирования используется модуль logging, который позволяет гибко настраивать уровень детализации и формат сообщений.

Для начала работы с логированием необходимо настроить базовую конфигурацию:


import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')


После этого можно использовать различные уровни логирования: debug, info, warning, error, critical:


logging.info('This is an info message')
logging.warning('This is a warning message')


Логирование позволяет сохранять сообщения в файл, что упрощает анализ работы программы:


logging.basicConfig(filename='app.log', level=logging.DEBUG)


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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🔥 Как выполнять арифметические операции в Python?

Арифметические операции в Python выполняются с помощью стандартных операторов, которые позволяют проводить вычисления с числами.

Основные арифметические операторы:

- Сложение (+): складывает два числа.

result = 5 + 3 # 8


- Вычитание (-): вычитает одно число из другого.

result = 5 - 3 # 2


- Умножение (*): умножает два числа.

result = 5 * 3 # 15


- Деление (/): делит одно число на другое, возвращая результат с плавающей точкой.

result = 5 / 3 # 1.666...


- Целочисленное деление (//): делит одно число на другое, возвращая целую часть.

result = 5 // 3 # 1


- Остаток от деления (%): возвращает остаток от деления.

result = 5 % 3 # 2


- Возведение в степень (**): возводит число в степень.

result = 5 ** 3 # 125


Эти операторы позволяют выполнять базовые математические операции в Python.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
🔥 Что такое область видимости переменных?

Область видимости переменных в Python определяет, где в коде можно использовать переменную. Существует несколько уровней области видимости: локальная, глобальная, встроенная и область видимости замыканий.

- Локальная область: переменные, объявленные внутри функции, доступны только в этой функции. Они создаются при вызове функции и удаляются после её завершения.


def my_function():
local_var = 10
print(local_var)

my_function()


- Глобальная область: переменные, объявленные на уровне модуля, доступны во всём модуле. Чтобы изменить глобальную переменную внутри функции, используется ключевое слово global.


global_var = 20

def modify_global():
global global_var
global_var = 30


- Встроенная область: включает функции и объекты, доступные по умолчанию, такие как len() и print().

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍201🔥1
🔥 Что такое нормализация и стандартизация данных?

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

- Нормализация: преобразует данные в определённый диапазон, обычно от 0 до 1. Это полезно, когда необходимо привести все признаки к единой шкале. Один из популярных методов нормализации — Min-Max нормализация:


from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(data)


- Стандартизация: преобразует данные так, чтобы они имели среднее значение 0 и стандартное отклонение 1. Это полезно, когда данные имеют нормальное распределение. Стандартизация часто используется в алгоритмах, чувствительных к масштабу данных, таких как SVM и K-Means:


from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
🔥 Как объединять строки в Python?

Объединение строк в Python можно выполнять несколькими способами, в зависимости от задачи и предпочтений.

- Конкатенация с помощью оператора +: простой способ объединить строки, но может быть неэффективным для большого количества строк.


str1 = "Hello"
str2 = "World"
result = str1 + " " + str2 # "Hello World"


- Метод join(): более эффективный способ объединения, особенно для списков строк.


words = ["Hello", "World"]
result = " ".join(words) # "Hello World"


- f-строки (f-strings): удобный способ форматирования и объединения строк, доступный с Python 3.6.


name = "World"
result = f"Hello {name}" # "Hello World"


- Метод format(): позволяет вставлять значения в строки.


result = "Hello {}".format("World") # "Hello World"


Каждый из этих методов имеет свои преимущества и может быть использован в зависимости от контекста.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥1
🔥 Что такое инкапсуляция?

Инкапсуляция — это один из ключевых принципов объектно-ориентированного программирования (ООП), который подразумевает скрытие внутренней реализации объекта и предоставление доступа к данным только через определённые методы. Это помогает защитить данные от некорректного использования и упрощает управление сложностью кода.

В Python инкапсуляция реализуется с помощью соглашений об именовании:

- Приватные атрибуты и методы: обозначаются одним или двумя подчёркиваниями в начале имени. Они не должны использоваться за пределами класса.


class MyClass:
def __init__(self):
self._protected_var = 1 # защищённый атрибут
self.__private_var = 2 # приватный атрибут

def __private_method(self):
pass # приватный метод


- Методы доступа (геттеры и сеттеры): используются для управления доступом к приватным атрибутам.


class MyClass:
def __init__(self):
self.__value = 0

def get_value(self):
return self.__value

def set_value(self, value):
if value >= 0:
self.__value = value


Инкапсуляция способствует созданию более надёжного и поддерживаемого кода.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🔥 Как работать с библиотекой SQLAlchemy?

SQLAlchemy — это библиотека для работы с базами данных в Python, которая предоставляет инструменты для объектно-реляционного отображения (ORM) и работы с SQL-запросами.

Для начала работы необходимо установить библиотеку:


pip install sqlalchemy


Создание подключения к базе данных осуществляется через объект create_engine:


from sqlalchemy import create_engine

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


Для определения структуры таблиц используется декларативный стиль с помощью declarative_base:


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

Base = declarative_base()

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


Для взаимодействия с базой данных создаётся сессия:


from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()


Добавление и запрос данных:


new_user = User(name='Alice')
session.add(new_user)
session.commit()

users = session.query(User).filter_by(name='Alice').all()


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3💯2
🔥 Что такое set и какие у него особенности?

set в Python — это неупорядоченная коллекция уникальных элементов. Он используется для хранения множества элементов без дубликатов и поддерживает операции над множествами, такие как объединение, пересечение и разность.

Создание множества можно выполнить с помощью фигурных скобок или функции set():


my_set = {1, 2, 3}
another_set = set([3, 4, 5])


Основные особенности set:

- Уникальность: все элементы в множестве уникальны. Добавление дубликата не изменит множество.
- Неупорядоченность: элементы не имеют фиксированного порядка, поэтому индексация недоступна.
- Изменяемость: элементы можно добавлять и удалять с помощью методов add() и remove().

Примеры операций над множествами:


union_set = my_set | another_set # {1, 2, 3, 4, 5}
intersection_set = my_set & another_set # {3}
difference_set = my_set - another_set # {1, 2}


set — это эффективный инструмент для работы с уникальными данными и выполнения операций над множествами.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
🔥 Как использовать библиотеку NumPy для численных вычислений?

NumPy — это библиотека для Python, которая предоставляет поддержку многомерных массивов и матриц, а также функции для выполнения высокоуровневых математических операций.

Для начала работы необходимо установить библиотеку:


pip install numpy


Основной объект NumPy — это массив ndarray, который можно создать с помощью функции array():


import numpy as np

arr = np.array([1, 2, 3, 4])


NumPy поддерживает широкий спектр операций над массивами, включая арифметические операции, которые выполняются поэлементно:


arr2 = np.array([5, 6, 7, 8])
result = arr + arr2 # array([ 6, 8, 10, 12])


NumPy также предоставляет функции для линейной алгебры, статистики и других численных вычислений:


matrix = np.array([[1, 2], [3, 4]])
det = np.linalg.det(matrix) # Вычисление определителя
mean = np.mean(arr) # Среднее значение


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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥1
🔥 Чем отличаются локальные и глобальные переменные?

Локальные переменные определяются внутри функции и доступны только в пределах этой функции. Они создаются при вызове функции и уничтожаются после её завершения. Это позволяет избежать конфликтов имен и сохранять память.

Пример локальной переменной:

def my_function():
local_var = 10 # Локальная переменная
print(local_var)

my_function()


Глобальные переменные определяются вне функций и доступны в любом месте программы. Они существуют в течение всего времени выполнения программы.

Пример глобальной переменной:

global_var = 20 # Глобальная переменная

def another_function():
print(global_var)

another_function()


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥1
🔥 Как читать все содержимое файла сразу?

Для чтения всего содержимого файла сразу в Python используется метод read(). Этот метод считывает весь текст из файла и возвращает его в виде строки. Важно помнить, что файл должен быть открыт в режиме чтения.

Пример чтения файла:


with open('example.txt', 'r') as file: # Открытие файла в режиме чтения
content = file.read() # Чтение всего содержимого файла
print(content) # Вывод содержимого файла


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

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
🔥 Что такое модуль sys?

Модуль sys в Python предоставляет доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором Python и его окружением. Он позволяет управлять параметрами командной строки, стандартными потоками ввода и вывода, а также завершать выполнение программы.

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

import sys

# Получение аргументов командной строки
print(sys.argv) # Список аргументов, переданных скрипту

# Завершение программы с кодом выхода
sys.exit(0) # Завершение программы с кодом 0 (успешно)


Модуль sys полезен для создания скриптов, которые требуют взаимодействия с операционной системой или обработки аргументов командной строки.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141