Сложность: Средняя
Условие задачи: Дан целочисленный массив и целое число k. Необходимо вернуть k часто встречающихся элементов. Порядок чисел в ответе не имеет значения.
Гарантируется, что ответ уникальный. То есть несколько элементов не могут встречаться одинаковое количество раз.
Пример:
Ввод:
nums = [1,1,1,2,2,3], k = 2
Вывод: [1,2]
Ввод:
nums = [1], k = 1
Вывод: [1]
Решение:
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
return [key for key, _ in Counter(nums).most_common(k)]
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Задача расшифровка строки
Сложность: Средняя
Условие задачи: дана строка в формате:
Пример:
Ввод:
Ввод:
Решение:
class Solution:
def decodeString(self, s: str) -> str:
stack = []
cur = ""
k = 0
for c in s:
if c == "[":
stack.append((cur, k))
cur, k = "", 0 # reset global vars
elif c == "]":
enc, n = stack.pop()
cur = enc + n * cur
elif c.isdigit():
k = k * 10 + int(c) # for two and three digit numbers
else:
cur += c # track the lower case letters
return cur
Пишите свое решение в комментариях👇
@python_job_interview
Сложность: Средняя
Условие задачи: дана строка в формате:
k[encoded_string]
, где k
- число повторений зашифрованной строки. Необходимо вывести результирующую строку, которая соответствует расшифровке исходной строки. Пример:
Ввод:
s = "3[a]2[bc]"
Вывод: "aaabcbc"Ввод:
s = "3[a2[c]]"
Вывод: "accaccacc"Решение:
def decodeString(self, s: str) -> str:
stack = []
cur = ""
k = 0
for c in s:
if c == "[":
stack.append((cur, k))
cur, k = "", 0 # reset global vars
elif c == "]":
enc, n = stack.pop()
cur = enc + n * cur
elif c.isdigit():
k = k * 10 + int(c) # for two and three digit numbers
else:
cur += c # track the lower case letters
return cur
Пишите свое решение в комментариях👇
@python_job_interview
Сложность: Лёгкая
Условие задачи: нужно реализовать стркутуру "последний зашел - первый вышел" используя только две очереди. Реализованная струкутура должна поддерживать функции обычного стека (добавления в стек, удаление верхнего элемента стака, возврат верхнего элемента стака, проверка на наличие элемнтов в стеке).
Пример:
Ввод:
["MyStack", "push", "push", "top", "pop", "empty"]
[[], [1], [2], [], [], []]
Вывод: [null, null, null, 2, 2, false]
Объяснение:MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // return 2
myStack.pop(); // return 2
myStack.empty(); // return False
Решение:
class MyStack:
def __init__(self):
self.stack=[]
def push(self, x: int) -> None:
self.stack.append(x)
def pop(self) -> int:
return self.stack.pop()
def top(self) -> int:
return self.stack[-1]
def empty(self) -> bool:
if self.stack==[]:
return True
return False
# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
написать программу, которая будет считывать с клавиатуры 4 десятичных числа x, y, m, n.
В числе x младшие m бит заменить на старшие m бит из числа y, потом инвертировать n младших бит в числе y. Все смещения бит указываются начиная с младшего (нулевого) бита.
Программа должна выводить исходные данные в десятичном виде, а полученные значения x, y вывести в двоичном виде в табличной форме, напротив двоичного числа выведите имя соответствующей переменной.
Программа не должна содержать более одного цикла. Также запрещается использовать различные библиотеки и классы для работы с битами. Программа должна работать корректно, вне зависимости от используемой архитектуры.
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
#middle
На прямой даны N отрезков (в реальной жизни это могут быть промежутки времени, например), которые заданы координатами их левого и правого конца.
Для каждого данного отрезка необходимо узнать, сколько из данных отрезков полностью находятся в нем. Один отрезок полностью содержится во втором, если левый конец первого отрезка находится правее левого конца второго отрезка, а правый конец первого находится левее правого конца второго.
Предложите как можно более эффективный способ решения этой задачи.
Гарантируется, что все концы данных отрезков различны.
❔Сможете ли вы решить эффективно данную задачу в случае, если концы отрезков могут совпадать?
Решение за О(n2) (полный перебор)
Давайте для каждого отрезка из набора перебером найдем все отрезки, для которых выполняется условие «вложенности». Если да, то увеличим ответ для текущего рассматриваемого нами отрезка на единицу. Несложно понять, что данное решение работает за O(n2): для каждого из N отрезков мы перебираем N отрезков. Можно ли быстрее? Да!
Отсортируем все отрезки по левому концу и будем рассматривать их в уже отсортированном порядке. Вспомним условие «вложенности»: левый конец первого отрезка правее левого конца второго отрезка, и правый конец первого отрезка левее правого конца второго отрезка. Несложно понять, что благодаря отсортированности все левые концы еще нерасмотренных отрезков будут правее левого конца рассматриваемого отрезка. Таким образом, все нерасмотренные отрезки потенциально являются вложенными в рассматриваемый: ведь для них уже выполняется одно из двух условий «вложенности» (про левые концы). Осталось узнать, сколько из них действительно являются таковыми — для этого нужно понять, сколько из нерассмотренных отрезков имеют правый конец левее правого конца рассматриваемого отрезка.
Для этого будем поддерживать структуру данных, которая может добавить и удалять из себя числа и отвечать на запросы вида: «сколько чисел во мне меньше X?», причем все операции должны выполняться за
O(log n)
Теперь, чтобы узнать сколько из нерассмотренных отрезков имеют правый конец левее правого конца рассматриваемого отрезка, достаточно просто осуществить запрос к структуре данных «сколько чисел в тебе меньше, чем координата правого конца рассматриваемого отрезка». Ответ на этот запрос и будет ответом для рассматриваемого на данный момент нами отрезка. После запроса необходимо убрать координату правого конца отрезка из структуры данных, чтобы ответы для всех следующих отрезков были корректны: ведь левый конец рассматриваемого отрезка левее (благодаря отсортированности) левый концов всех еще нерасмотренных отрезков.
Докажем, что данное решение работает за
О(n log n)
O(n log n
O(n log n)
О(log n).
O(n log n)
O(n log n)
O(n log n)
Повышаем сложность
Сможете ли вы решить эффективно данную задачу в случае, если концы отрезков могут совпадать?
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⚡ OpenResume - это инструмент для создания резюме с открытым исходным кодом. Он позволяет пользователям выбирать готовые шаблоны и заполнять информацию о себе в специальные поля без необходимости уделять внимание дизайну. Конструктор автоматически преобразует введенные данные. Кроме того, если у вас уже есть резюме в формате PDF, его можно импортировать в программу и редактировать по своему усмотрению, даже изменить дизайн в считанные секунды.
Дополнительным преимуществом является то, что все функции OpenResume абсолютно бесплатны и не требуют регистрации. Все пользовательские данные хранятся локально и не отправляются в сеть.
▪ Github
@python_job_interview
Дополнительным преимуществом является то, что все функции OpenResume абсолютно бесплатны и не требуют регистрации. Все пользовательские данные хранятся локально и не отправляются в сеть.
▪ Github
@python_job_interview
Напишите функцию, которая переворачивает булево значение и возвращает строку
“boolean expected”,
если передан другой тип переменной.”Пример:
reverse(True) ➞ False
reverse(False) ➞ True
reverse(0) ➞ "boolean expected"
reverse(None) ➞ "boolean expected"
Пишите свое решение в комментариях👇
#junior
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: Длинна трассы — 43872 м, а зрители хотят узнать имя победителя.
Нам известны средние скорости трёх фаворитов – Пети, Васи и Толи. Помогите подвести итоги гонки.
• Формат ввода
В первой строке записана средняя скорость Пети.
Во второй — Васи.
В третьей — Толи.
• Формат вывода
Имена победителей в порядке занятых мест.
• Пример 1
Ввод
10
5
7
• Вывод
1. Петя
2. Толя
3. Вася
• Код:
Пишите свое решение в комментариях👇
#junior
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Docker?
Docker — это платформа с открытым исходным кодом, которая позволяет разработчикам упаковывать приложения и их зависимости в самодостаточные единицы, называемые контейнерами. Docker обеспечивает согласованную и воспроизводимую среду, гарантируя последовательную работу приложения в различных системах, независимо от базовой инфраструктуры.
Docker используется в самых разных сценариях и отраслях благодаря своей универсальности и преимуществам. Некоторые распространенные случаи использования включают:
— Развертывание приложений: Docker упрощает процесс развертывания, предоставляя согласованную и воспроизводимую среду.
— Архитектура микросервисов: Docker часто используется в микросервисных архитектурах, где приложения разбиваются на более мелкие, независимые сервисы.
— Непрерывная интеграция и непрерывное развертывание (CI/CD): Docker широко используется в конвейерах CI/CD для обеспечения последовательных и воспроизводимых сборок и развертываний.
— Среды разработки и тестирования: Docker упрощает создание сред разработки и тестирования за счет инкапсуляции необходимых зависимостей в контейнеры.
— Масштабируемость и балансировка нагрузки: Docker облегчает горизонтальное масштабирование приложений за счет параллельного запуска нескольких контейнеров.
— Гибридные и мультиоблачные развертывания: Контейнеры Docker обеспечивают гибкость при развертывании приложений в различных средах, включая локальную инфраструктуру, публичные облака или гибридные облачные системы.
#вопросы_с_собеседований
Docker — это платформа с открытым исходным кодом, которая позволяет разработчикам упаковывать приложения и их зависимости в самодостаточные единицы, называемые контейнерами. Docker обеспечивает согласованную и воспроизводимую среду, гарантируя последовательную работу приложения в различных системах, независимо от базовой инфраструктуры.
Docker используется в самых разных сценариях и отраслях благодаря своей универсальности и преимуществам. Некоторые распространенные случаи использования включают:
— Развертывание приложений: Docker упрощает процесс развертывания, предоставляя согласованную и воспроизводимую среду.
— Архитектура микросервисов: Docker часто используется в микросервисных архитектурах, где приложения разбиваются на более мелкие, независимые сервисы.
— Непрерывная интеграция и непрерывное развертывание (CI/CD): Docker широко используется в конвейерах CI/CD для обеспечения последовательных и воспроизводимых сборок и развертываний.
— Среды разработки и тестирования: Docker упрощает создание сред разработки и тестирования за счет инкапсуляции необходимых зависимостей в контейнеры.
— Масштабируемость и балансировка нагрузки: Docker облегчает горизонтальное масштабирование приложений за счет параллельного запуска нескольких контейнеров.
— Гибридные и мультиоблачные развертывания: Контейнеры Docker обеспечивают гибкость при развертывании приложений в различных средах, включая локальную инфраструктуру, публичные облака или гибридные облачные системы.
#вопросы_с_собеседований
Целое число английскими словами
Сложность задачи: Hard
Условие задачи:
Преобразуйте неотрицательное целое число num в его буквенное представление английскими словами.
Пример:
Ввод:
Вывод:
Ввод:
Вывод:
Решение задачи
Пишите свое решение в комментариях👇
Сложность задачи: Hard
Условие задачи:
Преобразуйте неотрицательное целое число num в его буквенное представление английскими словами.
Пример:
Ввод:
num = 123
Вывод:
"One Hundred Twenty Three"
Ввод:
num = 12345
Вывод:
"Twelve Thousand Three Hundred Forty Five"
Решение задачи
Пишите свое решение в комментариях👇
show_pip_version() – вывод версии менеджера;
show_pip_help() – вывод справки по менеджеру;
install_package(package_name) – установка пакета;
upgrade_package(package_name) – обновление пакета;
show_package_info(package_name) – вывод информации о пакете;
show_packages() – вывод списка установленных пакетов;
uninstall_package(package_name) – удаление пакета.
Используя возможности созданного класса, дополните скрипт так, чтобы он смог выполнить предыдущее упражнение в автоматическом режиме.
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Задача золотой массив
Пролог
Миша учится в классе, в котором у каждого ученика есть рейтинг успеваемости. Иван Иванович (ИИ) - учитель информатики перед каждым уроком получает массив с рейтингом учеников, которые придут. Он хочет рассадить их определённым образом, а Миша хочет
Задание
Вам дается массив целых чисел [
Длина массива - четное число (чтобы у каждого ученика был сосед по парте, ученик без соседа отправится ИИ на другой урок)
Пустой массив тоже понравится ИИ, потому что тогда вместо урока он пойдет в столовую пить чай.
Важно: Менять элементы местами нельзя, можно только удалить число на любой позиции из массива. Когда элемент удаляется, элементы справа смещаются на одну позицию влево, чтобы заполнить появившийся пропуск, а все элементы слева остаются неизменными.
Верните минимальное число элементов, которые необходимо удалить, чтобы массив понравился ИИ.
Пример:
Ввод:
Мы можем удалить или
Пишите свое решение в комментариях👇
@python_job_interview
Пролог
Миша учится в классе, в котором у каждого ученика есть рейтинг успеваемости. Иван Иванович (ИИ) - учитель информатики перед каждым уроком получает массив с рейтингом учеников, которые придут. Он хочет рассадить их определённым образом, а Миша хочет
5
по информатике, и он решил написать программу, которая поможет ИИ.Задание
Вам дается массив целых чисел [
students
]. Массив [students
] понравится ИИ если:Длина массива - четное число (чтобы у каждого ученика был сосед по парте, ученик без соседа отправится ИИ на другой урок)
students[i] != students[i+1]
для всех учеников на четных позициях (ИИ хочет, чтобы ученики с одинаковым рейтингом не сидели за одной партой; первые два элемента массива - ученики за первой партой, следующие два элемента - за второй и тд.)Пустой массив тоже понравится ИИ, потому что тогда вместо урока он пойдет в столовую пить чай.
Важно: Менять элементы местами нельзя, можно только удалить число на любой позиции из массива. Когда элемент удаляется, элементы справа смещаются на одну позицию влево, чтобы заполнить появившийся пропуск, а все элементы слева остаются неизменными.
Верните минимальное число элементов, которые необходимо удалить, чтобы массив понравился ИИ.
Пример:
Ввод:
students = [1, 1, 2, 3, 5]
Вывод: 1Мы можем удалить или
students[0]
или students[1]
, этого будет достаточно, чтобы массив понравился ИИ - students[1, 2, 3, 5].
Пишите свое решение в комментариях👇
@python_job_interview
Лучший способ получать свежие обновлении и следить за трендами в разработке.
Машинное обучение: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Тестирование: https://yangx.top/+F9jPLmMFqq1kNTMy
Java: t.me/javatg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка машинное обучение: https://yangx.top/addlist/_FjtIq8qMhU0NTYy
🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 ЗАДАЧА
Заполнить массив случайными положительными и отрицательными числами таким образом, чтобы все числа по модулю были разными. Это значит, что в массиве не может быть ни только двух равных чисел, но не может быть двух равных по модулю. В полученном массиве найти наибольшее по модулю число.
Абсолютное значение каждого нового числа перед помещением в массив надо сравнить с абсолютными значениями всех чисел, которые уже были добавлены в массив. Если хотя бы в одном сравнении числа совпадут, то новое число не следует добавлять в массив. Если же совпадений не было, то число добавляется массив по текущему индексу, после чего индекс увеличивается на 1.
Поиск же максимума по модулю отличается от обычного лишь тем, что сравниваются абсолютные значения элементов массива.
from random import random<br>
N = 15<br>
m = int(random() * 40) - 20<br>
arr = [m]<br>
i = 1<br>
while i < N:<br>
m = int(random() * 40) - 20<br>
f = 1<br>
for j in arr:<br>
if abs(j) == abs(m):<br>
f = 0<br>
break<br>
if f == 1:<br>
arr.append(m)<br>
i += 1<br>
print(arr)<br>
j = 0<br>
for i in range(1, 15):<br>
if abs(arr[i]) > abs(arr[j]):<br>
j = i<br>
print('Максимальный по модулю %d-й элемент равен %d' % (j,arr[j]))<br>
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
600 сайтов для поиска вакансий по всему миру
https://hellonewjob.org/tech-vacacny-sources
@python_job_interview
https://hellonewjob.org/tech-vacacny-sources
@python_job_interview
hellonewjob.org
Список ресурсов, которые помогут с поиском вакансий в IT/Tech и не только
список из 600+ ресурсов, которые помогут вам с поиском вакансий в IT/Tech и не только. Список не исчерпывающий
Вопрос_ответ_для_Python_разработчика_на_собеседовании.pdf
851.3 KB
📌 400 самых популярных вопросов-ответов для Python-разработчика.
Сохраняйте себе, чтобы не потерять
Сохраняйте себе, чтобы не потерять
Задача для новичков.
Вы работаете на производстве, и вас попросили рассчитать общую прибыль, полученную от продажи продукта. Вам дали словарь, содержащий данные о себестоимости единицы продукции (в долларах), цене продажи единицы продукции (в долларах) и начальных товарных запасах. Верните общую полученную прибыль, округленную до целого доллара
Пример:
```profit({
"cost_price": 32.67,
"sell_price": 45.00,
"inventory": 1200
}) ➞ 14796
profit({
"cost_price": 225.89,
"sell_price": 550.00,
"inventory": 100
}) ➞ 32411
profit({
"cost_price": 2.77,
"sell_price": 7.95,
"inventory": 8500
}) ➞ 44030
```Примечание:
1. Предполагаем, что все запасы были проданы.
2. Прибыль = общая сумма продаж – общая себестоимость
Пишите ваши варианты решения в комментах. Варианты решений будут скоро(сегодня-завтра)
#новичок #coбес
Пишите свое решение в комментариях👇
@python_job_interview
Вы работаете на производстве, и вас попросили рассчитать общую прибыль, полученную от продажи продукта. Вам дали словарь, содержащий данные о себестоимости единицы продукции (в долларах), цене продажи единицы продукции (в долларах) и начальных товарных запасах. Верните общую полученную прибыль, округленную до целого доллара
Пример:
```profit({
"cost_price": 32.67,
"sell_price": 45.00,
"inventory": 1200
}) ➞ 14796
profit({
"cost_price": 225.89,
"sell_price": 550.00,
"inventory": 100
}) ➞ 32411
profit({
"cost_price": 2.77,
"sell_price": 7.95,
"inventory": 8500
}) ➞ 44030
```Примечание:
1. Предполагаем, что все запасы были проданы.
2. Прибыль = общая сумма продаж – общая себестоимость
Пишите ваши варианты решения в комментах. Варианты решений будут скоро(сегодня-завтра)
#новичок #coбес
Пишите свое решение в комментариях👇
@python_job_interview
Напишите функцию, которая при задании URL-адреса в виде строки анализирует только доменное имя и возвращает его в виде строки.
Примеры
url = "https://uproger.com/c/HowdyhoNet" -> domain name = "uproger.com"
url = "http://www.zombie-bites.com" -> domain name = "zombie-bites"
url = "https://www.cnet.com" -> domain name = cnet"
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы должны создать все перестановки непустой входной строки и удалить дубликаты, если они есть. Это означает, что вы должны перетасовать все буквы из ввода во всех возможных порядках.
Примеры
* С инпутом 'a'
* Ваша функция должна вернуть ['a']
* С инпутом 'ab'
* Ваша функция должна вернуть ['ab', 'ba']
* С инпутом 'aabb'
* Ваша функция должна вернуть ['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa']
Обратите внимание, что порядок перестановок не имеет значения.
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Встроенные фикстуры — хороший инструмент, чтобы не создавать свои велосипеды и эффективно использовать мощь фреймворка, которую хотели передать авторы. Фикстуры помогают в разных случаях: при работе с выводом ошибок, логировании, создании отчетов и так далее. В статье разберем основные встроенные фикстуры и их применение в Pytest.
Потоки ввода и вывода ошибок
Когда нужно протестировать системные сообщения или перехватить ошибку, помогают фикстуры, которые умеют работать с потоками вывода.
Capfd — фикстура для работы с потоками стандартного ввода и вывода ошибок на уровне операционной системы. Она позволяет перехватывать не только то, что происходит в python-коде, но и то, что происходит в операционной системе.
Захваченный вывод доступен через вызов метода capfd.readouterr(), который возвращает named tuple с stderr и stdout в виде строк.
def test_system_echo(capfd):
os.system('echo "hello"')
captured = capfd.readouterr()
assert captured.out == "hello\n"
Capfdbinary
— тоже работает со стандартным выводом и ошибками, но возвращает именованный кортеж, где сообщения из stderr и stdout представлены в виде байтовых строк.
def test_system_echo(capfdbinary):
os.system('echo "hello"')
captured = capfdbinary.readouterr()
assert captured.out == b"hello\n"
Capsys
— фикстура для работы с потоками для стандартного вывода и вывода ошибок на уровне python-кода. Захватывает sys.stdout и sys.stderr из кода и возвращает в виде строк.
def test_output(capsys):
print("hello")
captured = capsys.readouterr()
assert captured.out == "hello\n"
Capsysbinary
— подходит для работы с потоками стандартного вывода на уровне python-кода. Захватывает sys.stdout и sys.stderr из кода и возвращает в виде байтовых строк.
def test_output(capsysbinary):
print("hello")
captured = capsysbinary.readouterr()
assert captured.out == b"hello\n"
ЛогированиеЛоги — отличный инструмент для дебага, когда дело касается стабильной работы приложения. По ним можно понять, когда и из-за чего в работе системы возник сбой. Pytest имеет несколько фикстур для управления логами из тестов.
Caplog
— позволяет работать с логами в python-коде. Дает возможность изменять уровень логирования, перехватывать сообщения, модифицировать их и многое другое.# Задать уровень логирования
def test_foo(caplog):
caplog.set_level(logging.INFO)
for message in caplog.messages:
assert "for debug level" not in message
# Пример проверки уровня логирования и текста в сообщении лога
def test_baz(caplog):
func_under_test()
for record in caplog.records:
assert record.levelname != "CRITICAL"
assert "wally" not in caplog.text
Recwarn — возвращает экземпляр класса WarningsRecorder, где будут храниться все warnings, которые были вызваны с помощью warnings.warn в тестовых функциях.
import warnings
def test_check_warnings(recwarn):
warnings.warn("hello", UserWarning)
assert len(recwarn) == 1
warn = recwarn.pop(UserWarning)
assert issubclass(warn.category, UserWarning)
assert str(warn.message) == "hello"
assert warn.filename
Отчеты и документация
Pytest из коробки позволяет генерировать отчеты в формате JUnit XML, поэтому во фреймворке имеется ряд специальных фикстур для управления формированием отчета.
Doctest_namespace
— фикстура для работы со встроенной библиотекой doctest. Библиотека помогает сравнить поведение функции с тем, что описано в docstring как ее ожидаемое поведение.
# Объявляем фикстуру в conftest.py
import numpy
@pytest.fixture(autouse=True)
def add_np(doctest_namespace):
doctest_namespace["np"] = numpy # Добавляет в namespace np ссылку на объект numpy
# Вызываем namespace в numpy.py
def arange():
"""
>>> a = np.arange(10)
>>> len(a)
10
"""
pass
Напишите фикстуры, которые вы используете в комментариях 👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM