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
🟢Пакет — это способ организации модулей в иерархическую структуру каталогов. Он позволяет группировать связанные модули, упрощая их импорт и использование в проектах.

🟠Пакет — это директория, содержащая файл __init__.py, который может быть пустым или содержать код для инициализации пакета. Этот файл указывает Python, что директория является пакетом, и позволяет импортировать модули внутри нее.

🟡Пакеты помогают избежать конфликтов имен и упрощают управление большими проектами, предоставляя возможность логически структурировать код. Они также поддерживают повторное использование кода, облегчая его распространение и установку через менеджеры пакетов, такие как pip.

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

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

В Python инкапсуляция достигается с помощью соглашений об именовании. Атрибуты, начинающиеся с одного подчеркивания (например, _attribute), считаются защищенными и не предназначены для прямого доступа. Два подчеркивания (например, __attribute) используются для создания приватных атрибутов, которые автоматически переименовываются интерпретатором Python для предотвращения их случайного доступа.

class Example:
def __init__(self):
self._protected = "Protected"
self.__private = "Private"

def get_private(self):
return self.__private

obj = Example()
print(obj._protected) # Доступ разрешен, но не рекомендуется
print(obj.get_private()) # Правильный способ доступа к приватному атрибуту


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

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

Применение pass актуально в следующих случаях:

1️⃣ Создание минимального класса или функции.
2️⃣ Заготовки для будущих блоков кода.
3️⃣ Оставление тела цикла или условия пустым до разработки полной функциональности.

def placeholder_function():
pass


⬆️В этом примере функция placeholder_function не выполняет никаких действий, но синтаксически корректна и может быть дополнена позже.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍202🔥1
📝 ORM (Object-Relational Mapping) — это технология, которая позволяет разработчикам взаимодействовать с реляционными базами данных, используя объектно-ориентированные парадигмы. ORM автоматически преобразует данные между несовместимыми типами систем, что упрощает работу с базами данных и делает код более читаемым и поддерживаемым.

1️⃣ SQLAlchemy — мощная и гибкая библиотека, поддерживающая различные базы данных.
2️⃣ Django ORM — встроенная в Django фреймворк, простая в использовании.
3️⃣ Peewee — легковесная и простая ORM для небольших проектов.

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

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

🔘Когда исключение возникает, Python создает объект исключения и ищет блок try-except, который может его обработать. Если такой блок не найден, программа завершает выполнение, и стек вызовов выводится в консоль, показывая, где именно произошла ошибка.

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

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


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥3🤔1
Тип данных float в Python используется для представления чисел с плавающей точкой, что позволяет работать с дробными числами и выполнять операции с высокой точностью. Однако при работе с float следует учитывать возможные ошибки округления из-за ограниченной точности представления чисел в двоичной системе.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3
Для работы с JSON-файлами используется модуль json. Он позволяет сериализовать объекты.

➡️ Чтение JSON из файла:

import json

with open('data.json', 'r') as file:
data = json.load(file)


➡️ Запись JSON в файл:

import json

data = {'name': 'Alice', 'age': 30}

with open('data.json', 'w') as file:
json.dump(data, file, indent=4)


Методы json.load() и json.dump() работают с файлами, а json.loads() и json.dumps() — со строками.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍171
Словари — это изменяемые коллекции, которые хранят пары "ключ-значение", обеспечивая быстрый доступ к данным по ключу. Ключи в словаре должны быть уникальными и неизменяемыми, такими как строки или числа.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥31
Python собеседования pinned «ℹ️Подписывайся на наши новые каналы! 🖥 JS собеседования 🖥 Backend собеседования»
🔘Определение класса-наследника в позволяет расширять функциональность существующего класса. Для этого используется механизм наследования, который позволяет новому классу (наследнику) получать свойства и методы родительского класса.

class Animal:
def speak(self):
return "Some sound"

class Dog(Animal):
def speak(self):
return "Bark"

dog = Dog()
print(dog.speak()) # Выведет: Bark


🔘В этом примере класс Dog наследует от класса Animal и переопределяет метод speak. Это позволяет классу Dog иметь свою реализацию метода, сохраняя при этом доступ к другим методам и атрибутам родительского класса.

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

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

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

# Создание списка из строки
string = "hello"
list_from_string = list(string) # ['h', 'e', 'l', 'l', 'o']

# Создание списка из кортежа
tuple_data = (1, 2, 3)
list_from_tuple = list(tuple_data) # [1, 2, 3]

# Создание пустого списка
empty_list = list() # []


list() полезна для преобразования итерируемых объектов в списки для дальнейшей обработки.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183
➡️ Обычные функции выполняются полностью при вызове и возвращают одно значение с помощью оператора return. Они сохраняют состояние только до завершения выполнения.

➡️ Генераторы, напротив, используют ключевое слово yield, которое позволяет функции возвращать значение и приостанавливать выполнение. Это позволяет сохранять состояние между вызовами, что делает их идеальными для работы с большими данными или потоками, где требуется ленивое вычисление.

def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1


➡️ Генераторы экономят память, так как не хранят все значения в памяти одновременно, а создают их по мере необходимости.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥2
*️⃣ Создание списка — это базовая операция, которая позволяет хранить коллекцию элементов. Списки могут содержать элементы разных типов, включая числа, строки и другие списки.

*️⃣ Для создания пустого списка используется квадратные скобки:

my_list = []


*️⃣ Чтобы создать список с элементами, перечисляются элементы через запятую:

my_list = [1, 2, 3, 'a', 'b', 'c']


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥2👀1
Pip — это пакетный менеджер для Python, который используется для установки и управления программными пакетами, написанными на Python. Он позволяет легко устанавливать библиотеки и их зависимости из репозитория Python Package Index (PyPI).

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥2💯2👀2
😎 Цикл for используется для итерации по элементам последовательности, такой как список, строка или диапазон чисел. Он позволяет выполнять блок кода для каждого элемента в последовательности.

# Итерация по списку
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit) # Выводит каждый фрукт из списка

# Итерация по строке
for char in "hello":
print(char) # Выводит каждую букву из строки

# Использование функции range()
for i in range(3):
print(i) # Выводит числа 0, 1, 2


😎 Цикл for автоматически завершает выполнение, когда достигает конца последовательности.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍243👨‍💻1
💡 Ключевое слово yield используется для создания генераторов, которые позволяют функции возвращать значение и приостанавливать своё выполнение, сохраняя состояние для последующего возобновления. Это позволяет эффективно работать с большими наборами данных, так как значения генерируются по мере необходимости, а не хранятся в памяти целиком.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3👨‍💻1
📌 REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов, который использует стандартные HTTP методы, такие как GET, POST, PUT и DELETE, для взаимодействия с ресурсами, представленными в виде URL. Основные принципы REST включают в себя stateless взаимодействие, кэшируемость, клиент-серверную архитектуру и единообразие интерфейса.

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

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


# Создание переменной
a = 42

# Получение идентификатора объекта
object_id = id(a)

# Вывод идентификатора
print(object_id) # Например, 140735980851184


🔵 Функция id() полезна для отладки и понимания того, как Python управляет объектами в памяти. Она позволяет проверить, ссылаются ли две переменные на один и тот же объект.

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

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


# Определение функции, которая будет применяться к каждому элементу
def square(x):
return x * x

# Применение функции square ко всем элементам списка
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)

# Преобразование итератора в список для вывода
print(list(squared_numbers)) # Вывод: [1, 4, 9, 16, 25]


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

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

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