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

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

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Для подключения к базе данных из Python часто используется библиотека sqlite3 для SQLite или psycopg2 для PostgreSQL.

▶️ Пример подключения к SQLite:

import sqlite3

# Устанавливаем соединение с базой данных
connection = sqlite3.connect('example.db')

# Создаем курсор для выполнения SQL-запросов
cursor = connection.cursor()

# Выполняем SQL-запрос
cursor.execute('SELECT * FROM users')

# Закрываем соединение
connection.close()


▶️ Для PostgreSQL можно использовать psycopg2:

import psycopg2

# Устанавливаем соединение с базой данных
connection = psycopg2.connect(
dbname='dbname',
user='user',
password='password',
host='localhost'
)

# Создаем курсор
cursor = connection.cursor()

# Выполняем SQL-запрос
cursor.execute('SELECT * FROM users')

# Закрываем соединение
connection.close()


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍114🤔1
Для чтения файла построчно в Python используется конструкция with open. Это гарантирует, что файл будет корректно закрыт после завершения работы.


# Открываем файл в режиме чтения
with open('example.txt', 'r') as file:
# Читаем файл построчно
for line in file:
# Обрабатываем каждую строку
print(line.strip()) # strip() удаляет лишние пробелы и символы новой строки


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍202👀1
🔳 Для получения длины списка используется встроенная функция len(). Она принимает список в качестве аргумента и возвращает количество элементов в нём.


my_list = [1, 2, 3, 4, 5]
length = len(my_list) # Получение длины списка


🔲 В этом примере len(my_list) вернёт значение 5, так как в списке пять элементов.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20👀21
Модульное тестирование — это процесс проверки отдельных частей программы, называемых модулями, на корректность их работы. Оно необходимо для выявления ошибок на ранних этапах разработки, упрощения отладки и обеспечения стабильности кода при внесении изменений.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2👀1
▶️ Для импорта модуля используется ключевое слово import, за которым следует имя модуля. Если необходимо импортировать только определённые функции или классы из модуля, используется конструкция from module import name.


import math # Импорт всего модуля math

from math import sqrt # Импорт только функции sqrt из модуля math


▶️ В первом примере импортируется весь модуль math, а во втором — только функция sqrt из этого модуля.

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

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


# Запрашиваем у пользователя его имя
name = input("Введите ваше имя: ")

# Выводим приветствие
print("Привет, " + name + "!")


👉 В данном примере input() выводит сообщение "Введите ваше имя: ", ожидает ввода и сохраняет его в переменной name. Затем программа выводит приветствие с введённым именем.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍233🔥1
Функция isinstance() проверяет, является ли объект экземпляром указанного класса или его подкласса, возвращая True или False. Это полезно для проверки типов данных и обеспечения корректности работы программы с различными объектами.

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


# Создание множества с уникальными элементами
unique_numbers = {1, 2, 3, 4, 5}

# Создание множества из списка
unique_fruits = set(["apple", "banana", "apple", "orange"])


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

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

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

Пример простого декоратора:


def simple_decorator(func):
def wrapper():
print("До вызова функции")
func()
print("После вызова функции")
return wrapper

@simple_decorator
def say_hello():
print("Привет!")

# Вызов функции
say_hello()


🔸В этом примере simple_decorator добавляет вывод текста до и после вызова функции say_hello.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1
Для получения размера файла используется функция os.path.getsize(), которая возвращает размер файла в байтах. Необходимо передать путь к файлу в качестве аргумента этой функции.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯1
🔘Создание экземпляра класса осуществляется путем вызова класса как функции. Это вызывает метод __init__, который инициализирует новый объект.


class Dog:
def __init__(self, name):
self.name = name

# Создание экземпляра класса Dog
my_dog = Dog("Buddy")

# Доступ к атрибуту экземпляра
print(my_dog.name) # Выводит: Buddy


🔘В этом примере создается класс Dog с атрибутом name. Экземпляр my_dog создается с именем "Buddy", и доступ к его атрибуту осуществляется через my_dog.name.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
✖️ Файл init.py играет важную роль в Python-пакетах. Он указывает интерпретатору Python, что директория, содержащая этот файл, должна рассматриваться как пакет. Это позволяет импортировать модули из этой директории.

✖️ В Python 3.3 и выше init.py не обязателен для создания пакетов, но его наличие может быть полезным. Он может содержать код инициализации пакета или устанавливать переменные, доступные при импорте пакета.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12💯5🔥2
Паттерн 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