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 собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4
🟠 Функция sorted() возвращает новый отсортированный список из итерируемого объекта. Она принимает параметры: сам итерируемый объект, key для определения функции сортировки и reverse для указания порядка сортировки.


numbers = [3, 1, 4, 1, 5, 9]

# Сортировка по возрастанию
sorted_numbers = sorted(numbers)

# Сортировка по убыванию
sorted_numbers_desc = sorted(numbers, reverse=True)

# Сортировка строк по длине
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=len)


Параметр key позволяет задавать пользовательскую логику сортировки, а reverse определяет направление.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134
Ключевое слово nonlocal используется для обозначения переменной в родительской функции, которая будет изменена внутри вложенной функции. Это позволяет избежать создания новой локальной переменной и работать с переменной из внешней области видимости.

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


def sum_all(*args):
return sum(args) # Суммирование всех переданных аргументов

result = sum_all(1, 2, 3, 4) # Вернет 10


Использование *args делает функции более гибкими и позволяет передавать любое количество аргументов без необходимости явно их перечислять.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
Для копирования файла используется функция shutil.copy() из модуля shutil, которая копирует содержимое файла из одного места в другое. Она принимает два аргумента: путь к исходному файлу и путь к месту назначения, создавая копию файла с тем же именем.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥1
😊 Декоратор применяется к функции с помощью символа @, за которым следует имя декоратора перед определением функции. Это позволяет обернуть функцию дополнительной логикой без изменения её исходного кода.


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

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

say_hello() # Вызов функции с примененным декоратором


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
▶️ Паттерн Adapter позволяет объектам с несовместимыми интерфейсами работать вместе, оборачивая один из объектов адаптером. Адаптер преобразует интерфейс одного класса в интерфейс, ожидаемый клиентом.


class EuropeanSocket:
def voltage(self):
return 230

class USASocket:
def voltage(self):
return 120

class Adapter:
def __init__(self, socket):
self.socket = socket

def voltage(self):
return self.socket.voltage()

european_socket = EuropeanSocket()
adapter = Adapter(european_socket)
print(adapter.voltage()) # Использование адаптера для получения напряжения


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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3🤔1
✔️ Оператор pass используется как заглушка, когда синтаксис требует наличие кода, но логика ещё не реализована. Он позволяет избежать синтаксических ошибок в пустых конструкциях, таких как функции, циклы или классы.


def unfinished_function():
pass # Заглушка для будущей реализации

class EmptyClass:
pass # Заглушка для пустого класса

for _ in range(5):
pass # Заглушка в цикле


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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161
Декораторы позволяют изменять поведение функции, не меняя её код. Для создания декоратора используется функция, которая принимает другую функцию и возвращает новую функцию с изменённым поведением.


def my_decorator(func):
def wrapper(*args, **kwargs):
print("Действие до вызова функции")
result = func(*args, **kwargs)
print("Действие после вызова функции")
return result
return wrapper


Здесь my_decorator — это декоратор, который добавляет действия до и после вызова функции. wrapper — обёртка, которая выполняет эти действия и вызывает исходную функцию.


@my_decorator
def say_hello(name):
print(f"Hello, {name}!")


При вызове say_hello("World") будет выведено:


Действие до вызова функции
Hello, World!
Действие после вызова функции


Декораторы полезны для логирования, проверки прав доступа, кэширования и других задач.

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11💯1
Шаг в функции range() задаётся третьим аргументом. По умолчанию шаг равен 1, но его можно изменить на любое целое число, включая отрицательные значения для обратного порядка.


for i in range(0, 10, 2):
print(i)


В этом примере вывод будет:


0
2
4
6
8


Здесь range(0, 10, 2) создаёт последовательность от 0 до 10 с шагом 2. Если шаг отрицательный, последовательность будет идти в обратном порядке:


for i in range(10, 0, -2):
print(i)


Вывод:


10
8
6
4
2


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

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


for i in range(3):
for j in range(2):
print(i, j)


Внешний цикл выполняется три раза, а внутренний — два раза для каждой итерации внешнего. Результат:


0 0
0 1
1 0
1 1
2 0
2 1


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

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Метод __eq__() определяет поведение оператора сравнения == для объектов класса. Он принимает два аргумента: self (текущий объект) и other (объект для сравнения), и возвращает True или False.


class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def __eq__(self, other):
return self.x == other.x and self.y == other.y


Здесь метод __eq__() сравнивает координаты двух точек. Если они равны, возвращается True, иначе — False.

Метод __eq__() позволяет кастомизировать логику сравнения объектов, что полезно для работы с пользовательскими типами данных.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
🛑 Логические операторы and, or, not используются для работы с булевыми значениями.

- and возвращает True, если оба операнда истинны. Если первый операнд ложный, возвращается его значение без вычисления второго.
- or возвращает True, если хотя бы один операнд истинный. Если первый операнд истинный, возвращается его значение без вычисления второго.
- not инвертирует значение: True становится False, и наоборот.


a = True
b = False

print(a and b) # False, так как b ложно
print(a or b) # True, так как a истинно
print(not a) # False, инвертирует True


Эти операторы часто используются в условиях и для проверки нескольких выражений одновременно.

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

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


import math

print(dir(math)) # Список всех атрибутов и методов модуля math
print(dir()) # Список имен в текущей локальной области видимости


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

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

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
✔️ Декоратор для класса позволяет изменить или расширить его поведение. Декоратор принимает класс как аргумент, модифицирует его и возвращает измененную версию.


def add_method(cls):
def new_method(self):
return "New method added"
cls.new_method = new_method
return cls

@add_method
class MyClass:
pass

obj = MyClass()
print(obj.new_method()) # Вывод: New method added


В этом примере декоратор add_method добавляет новый метод new_method в класс MyClass. Декораторы для классов полезны для добавления функциональности без изменения исходного кода класса.

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

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Для чтения файла в формате CSV используется модуль csv. С помощью метода reader можно построчно прочитать данные, а метод DictReader позволяет работать с CSV как со списком словарей, где ключи — это заголовки столбцов.

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