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
Глобальная область видимости — это пространство имен, доступное на уровне всего модуля, где определены переменные, функции и классы, объявленные вне каких-либо функций или блоков. Переменные в глобальной области видимости доступны из любого места в модуле, но для их изменения внутри функций требуется использование ключевого слова 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
✔️ Для открытия файла для чтения используется функция open() с режимом 'r'. Этот режим позволяет читать содержимое файла.


file = open('example.txt', 'r')
content = file.read() # Чтение всего содержимого файла
file.close() # Закрытие файла


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


with open('example.txt', 'r') as file:
content = file.read() # Файл автоматически закроется после выхода из блока


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

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


class Singleton:
_instance = None

def __new__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance


В этом примере __new__() используется для реализации паттерна Singleton. При каждом вызове конструктора возвращается один и тот же экземпляр класса. Если экземпляр уже существует, новый не создается. Это демонстрирует, как __new__() может управлять процессом создания объектов.

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

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


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


В данном примере enumerate() возвращает кортежи, где первый элемент — это индекс, а второй — значение из списка. По умолчанию индексация начинается с 0, но можно указать стартовое значение через параметр start.


for index, fruit in enumerate(fruits, start=1):
print(index, fruit)


Таким образом, enumerate() упрощает код, избавляя от необходимости вручную управлять индексом.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
RESTful API — это архитектурный стиль, основанный на принципах REST (Representational State Transfer), который использует стандартные HTTP-методы (GET, POST, PUT, DELETE) для взаимодействия с ресурсами. В отличие от других типов API, таких как SOAP или RPC, RESTful API ориентирован на простоту, масштабируемость и использование единого интерфейса для работы с данными.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
▶️Литералы в Python — это фиксированные значения, которые используются в коде без вычисления. Они представляют собой непосредственные данные, записанные в программе. Основные типы литералов:

1. Числовые литералы: целые числа, числа с плавающей точкой, комплексные числа.

42 # целое число
3.14 # число с плавающей точкой
2 + 3j # комплексное число


2. Строковые литералы: последовательности символов, заключенные в кавычки.

"Hello, World!" # строка в двойных кавычках
'Python' # строка в одинарных кавычках


3. Булевы литералы: значения True и False.

True # истина
False # ложь


4. Специальный литерал: None, обозначающий отсутствие значения.

None # отсутствие значения


5. Коллекции: списки, кортежи, словари, множества.

[1, 2, 3] # список
(1, 2, 3) # кортеж
{'a': 1, 'b': 2} # словарь
{1, 2, 3} # множество


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103
Логирование исключений выполняется с помощью модуля logging, который позволяет записывать информацию об ошибках в файл или выводить в консоль. В блоке except используется метод logging.exception() для автоматического добавления трассировки стека к сообщению об ошибке.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
▶️Конструктор в классе определяется с помощью метода __init__. Этот метод автоматически вызывается при создании объекта класса и используется для инициализации атрибутов.


class MyClass:
def __init__(self, value):
self.value = value # Инициализация атрибута


Первый параметр self ссылается на текущий экземпляр класса. Остальные параметры передаются при создании объекта.


obj = MyClass(10) # Создание объекта с передачей аргумента


Конструктор может быть пустым, если инициализация не требуется.

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

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


x = 10 # Глобальная переменная

def modify_global():
global x # Указываем, что используем глобальную переменную
x = 20 # Изменяем её значение

modify_global()
print(x) # Выведет 20


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
Для этого доступны несколько методов:

1. Перевод строки в верхний регистр:

text = "Hello, World!"
upper_text = text.upper()
# Результат: "HELLO, WORLD!"


2. Перевод строки в нижний регистр:

text = "Hello, World!"
lower_text = text.lower()
# Результат: "hello, world!"


3. Инверсия регистра:

text = "Hello, World!"
swapped_text = text.swapcase()
# Результат: "hELLO, wORLD!"


4. Каждое слово с заглавной буквы:

text = "hello world"
title_text = text.title()
# Результат: "Hello World"


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Длину строки или списка можно получить с помощью функции len(), которая возвращает количество элементов в последовательности. Для строки это количество символов, для списка — количество элементов.

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


def greet(name, message):
print(f"{message}, {name}!")

greet("Alice", "Hello") # Позиционная передача
greet(message="Hi", name="Bob") # Именованная передача


В Python также поддерживаются аргументы по умолчанию, которые используются, если значение не передано явно. Переменное количество аргументов можно обработать с помощью *args и **kwargs.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91😎1
👉 Для удаления всех элементов из списка можно использовать метод clear(), который полностью очищает список. Альтернативно, можно присвоить списку пустой список с помощью среза или оператора присваивания.


my_list = [1, 2, 3]
my_list.clear() # Очистка списка
my_list = [1, 2, 3]
my_list[:] = [] # Очистка с использованием среза


Оба способа удаляют все элементы, но метод clear() является более явным и читаемым.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Для записи данных в бинарный файл используется режим 'wb' при открытии файла с помощью функции open(). Данные записываются методом write(), предварительно преобразованные в байты с использованием модуля struct или методов encode для строк.

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


numbers = [10, 20, 5, 30]
min_value = min(numbers) # Находит минимальное значение (5)
max_value = max(numbers) # Находит максимальное значение (30)


Также можно передать ключевой параметр key для определения критерия сравнения, например, для поиска минимальной или максимальной строки по длине.

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

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


x = 10
y = 20
is_greater = x > y # Сравнение, результат будет False
if is_greater:
print("x больше y") # Этот блок не выполнится
else:
print("x не больше y") # Выведет "x не больше y"


Булевы значения также могут быть результатом логических операций, таких как and, or и not.

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

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