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
🛑Локальная область видимости в Python ограничена функцией или блоком кода, где переменная определена. Переменные, созданные внутри функции, доступны только в этой функции и не видны за её пределами. При завершении функции локальные переменные уничтожаются.

Пример:


def example():
x = 10 # x — локальная переменная
print(x)

example()
print(x) # Ошибка: x не определена в глобальной области


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

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

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

Обычные методы (instance methods) принимают первым аргументом self — ссылку на экземпляр класса. Вызываются через экземпляр:


class MyClass:
def instance_method(self):
return "This is an instance method"

obj = MyClass()
obj.instance_method() # Вызов метода


Методы класса (class methods) принимают cls — ссылку на класс. Декорируются @classmethod. Вызываются через класс или экземпляр:


class MyClass:
@classmethod
def class_method(cls):
return "This is a class method"

MyClass.class_method() # Вызов через класс


Статические методы (static methods) не принимают self или cls. Декорируются @staticmethod. Вызываются через класс или экземпляр:


class MyClass:
@staticmethod
def static_method():
return "This is a static method"

MyClass.static_method() # Вызов через класс


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

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

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


def decorator1(func):
def wrapper():
print("Decorator 1")
func()
return wrapper

def decorator2(func):
def wrapper():
print("Decorator 2")
func()
return wrapper

@decorator1
@decorator2
def my_function():
print("Original function")

my_function()


В этом примере сначала применяется decorator2, затем decorator1. При вызове my_function вывод будет:

Decorator 1
Decorator 2
Original function


Декораторы оборачивают функцию слоями, изменяя её поведение.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
▶️ Для вставки элемента в список на определенную позицию используется метод insert.


my_list = [1, 2, 3, 4]
my_list.insert(2, 'new')
print(my_list) # [1, 2, 'new', 3, 4]


Первый аргумент — индекс, на который нужно вставить элемент. Второй аргумент — сам элемент. Если индекс выходит за пределы списка, элемент добавляется в конец.


my_list.insert(10, 'end')
print(my_list) # [1, 2, 'new', 3, 4, 'end']


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

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯2
Для создания таблицы в базе данных используется SQL-запрос CREATE TABLE.


CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);


В этом примере создается таблица users с тремя столбцами: id, username и email. id является первичным ключом с автоматическим инкрементом, username — обязательное поле, а email должно быть уникальным.


CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);


Вторая таблица orders создается с внешним ключом, который ссылается на столбец id таблицы users.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4
Оператор in используется для проверки наличия элемента в последовательности (например, списке, строке, кортеже) или ключа в словаре. Возвращает True, если элемент найден, и False, если нет.


numbers = [1, 2, 3, 4, 5]
print(3 in numbers) # True, так как 3 есть в списке
print(6 in numbers) # False, так как 6 отсутствует


Также in применяется для проверки подстроки в строке:


text = "Hello, world!"
print("world" in text) # True, подстрока найдена


Для словарей in проверяет наличие ключа:


data = {"name": "Alice", "age": 25}
print("name" in data) # True, ключ существует


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
👉 Функция next() используется для получения следующего значения из генератора. При каждом вызове next() генератор выполняет код до ключевого слова yield и возвращает соответствующее значение. Если элементы закончились, вызывается исключение StopIteration.


def simple_generator():
yield 1
yield 2
yield 3

gen = simple_generator()
print(next(gen)) # 1, первое значение
print(next(gen)) # 2, второе значение
print(next(gen)) # 3, третье значение


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


print(next(gen, "No more items")) # No more items, элементы закончились


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

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


fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit)


Результат:

0 apple
1 banana
2 cherry


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
Модуль logging используется для записи сообщений разного уровня важности (DEBUG, INFO, WARNING, ERROR, CRITICAL) в лог. Он позволяет гибко настраивать формат вывода, уровень логирования и направление сообщений (в файл, консоль и т.д.), что делает его удобным для отладки и мониторинга приложений.

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


number = int("42") # Преобразует строку "42" в целое число 42
float_to_int = int(3.14) # Преобразует 3.14 в 3 (отбрасывает дробную часть)
binary = int("1010", 2) # Преобразует двоичную строку "1010" в число 10


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

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

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


help(len) # Получить информацию о функции len
help(str) # Получить документацию по классу str


Если вызвать help() без аргументов, откроется интерактивный режим, где можно вводить названия объектов для получения справки. Это полезно для изучения встроенных модулей и функций, а также для проверки документации собственного кода.

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

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

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


x = 42
print(type(x)) # Вывод: <class 'int'> — тип объекта x


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


MyClass = type('MyClass', (), {'attr': 100})
obj = MyClass()
print(obj.attr) # Вывод: 100 — доступ к атрибуту созданного класса


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4
🔶 Для записи данных в файл JSON используется модуль json. Данные сначала сериализуются в JSON-формат с помощью функции json.dumps(), а затем записываются в файл с использованием стандартных методов работы с файлами.

Пример:

import json

data = {
"name": "Alice",
"age": 30,
"city": "New York"
}

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


В этом примере словарь data записывается в файл data.json. Параметр indent=4 добавляет отступы для удобного чтения файла. Функция json.dump() автоматически преобразует данные в JSON и записывает их в файл.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Для объединения двух множеств в Python используется метод union() или оператор |. Оба способа создают новое множество, содержащее все уникальные элементы из обоих исходных множеств.


set1 = {1, 2, 3}
set2 = {3, 4, 5}
combined_set = set1.union(set2) # {1, 2, 3, 4, 5}


Или с использованием оператора |:


combined_set = set1 | set2 # {1, 2, 3, 4, 5}


Оба метода не изменяют исходные множества, а возвращают новое.

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

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

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