Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath
В этой статье я даю краткий обзор: в основном это структура данных вида key: value, содержащая примитивные типы данных, такие как строка, логическое значение, числа, а также массивы. JSON очень похож на словарь в Python.
Читать...
Разъяснивший Python
В этой статье я даю краткий обзор: в основном это структура данных вида key: value, содержащая примитивные типы данных, такие как строка, логическое значение, числа, а также массивы. JSON очень похож на словарь в Python.
Читать...
Разъяснивший Python
Хабр
Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath
JSON — один из самых распространённых форматов данных, используемых для передачи и получения данных в современных API. Важно глубоко понять его. Если вы совсем не знакомы с этим форматом,...
Кэширование медленных функций с @lru_cache
Если у тебя есть тяжёлая или часто вызываемая функция с одними и теми же аргументами — можешь ускорить её с помощью встроенного декоратора lru_cache.
Итог :
@lru_cache — простой способ кешировать результат функции и избежать повторных вычислений. Особенно полезен в задачах с рекурсией, API-запросами или обработкой данных.
Разъяснивший Python
Если у тебя есть тяжёлая или часто вызываемая функция с одними и теми же аргументами — можешь ускорить её с помощью встроенного декоратора lru_cache.
Итог :
@lru_cache — простой способ кешировать результат функции и избежать повторных вычислений. Особенно полезен в задачах с рекурсией, API-запросами или обработкой данных.
Разъяснивший Python
7 ошибок новичков в Python, которые нужно исключить
В этом ролике автор рассмотрит самые частые ошибки новичков в Python. Вы узнаете, как это влияет на ваш проект и как можно исправить ситуацию к лучшему.
Смотреть...
Разъяснивший Python
В этом ролике автор рассмотрит самые частые ошибки новичков в Python. Вы узнаете, как это влияет на ваш проект и как можно исправить ситуацию к лучшему.
Смотреть...
Разъяснивший Python
Нейросети на PyTorch: Тригонометрические и статистические функции
Продолжаем делиться циклом видео, благодаря которому ты научишься работать с нейросетями. В этот раз ты узнаешь, какой порядок применения тригонометрических и статистических функций применительно к тензорам.
Смотреть...
Разъяснивший Python
Продолжаем делиться циклом видео, благодаря которому ты научишься работать с нейросетями. В этот раз ты узнаешь, какой порядок применения тригонометрических и статистических функций применительно к тензорам.
Смотреть...
Разъяснивший Python
YouTube
#7. Тензоры. Тригонометрические и статистические функции | Нейросети на PyTorch
Практический курс по НС: https://stepik.org/a/227582
Телеграм-канал: https://t.me/machine_learning_selfedu
Инфо-сайт: https://proproprogs.ru/nn_pytorch
PyTorch: https://pytorch.org/tutorials/
Порядок применения тригонометрических и статистических функций…
Телеграм-канал: https://t.me/machine_learning_selfedu
Инфо-сайт: https://proproprogs.ru/nn_pytorch
PyTorch: https://pytorch.org/tutorials/
Порядок применения тригонометрических и статистических функций…
Удаление дубликатов при сохранении порядка
Обычно set() убирает дубликаты, но не сохраняет порядок.
dict.fromkeys() создаёт словарь, где ключи — элементы списка (они уникальны), и при этом сохраняет порядок добавления (с Python 3.7+).
Итог:
Чтобы быстро убрать дубликаты и сохранить порядок, используй list(dict.fromkeys(...)). Эффективно и элегантно.
Разъяснивший Python
Обычно set() убирает дубликаты, но не сохраняет порядок.
dict.fromkeys() создаёт словарь, где ключи — элементы списка (они уникальны), и при этом сохраняет порядок добавления (с Python 3.7+).
Итог:
Чтобы быстро убрать дубликаты и сохранить порядок, используй list(dict.fromkeys(...)). Эффективно и элегантно.
Разъяснивший Python
Очистка текста с помощью str.translate и str.maketrans
Когда нужно быстро удалить нежелательные символы (например, знаки препинания) из строки, не нужно писать цикл — str.translate делает это мгновенно.
Итог:
Сочетание str.translate и str.maketrans — суперэффективный способ удаления символов из строки без регулярных выражений. Удобно, читаемо и быстро!
Разъяснивший Python
Когда нужно быстро удалить нежелательные символы (например, знаки препинания) из строки, не нужно писать цикл — str.translate делает это мгновенно.
Итог:
Сочетание str.translate и str.maketrans — суперэффективный способ удаления символов из строки без регулярных выражений. Удобно, читаемо и быстро!
Разъяснивший Python
Бонусный прием
В PEP 654 были объявлены группы исключений (Exception Groups): они позволяют заложить в одну строку except сразу несколько типов ошибок.
Если исследовать типы ошибок нет времени, можно на скорую руку заложить в такую группу все популярные ошибки и обернуть блоком try — except всю программу.
Разъяснивший Python
В PEP 654 были объявлены группы исключений (Exception Groups): они позволяют заложить в одну строку except сразу несколько типов ошибок.
Если исследовать типы ошибок нет времени, можно на скорую руку заложить в такую группу все популярные ошибки и обернуть блоком try — except всю программу.
Разъяснивший Python
❤1
Безопасная подстановка значений в SQL — не через f-строки!
Никогда не вставляй пользовательские данные напрямую в SQL-запросы. Используй параметризацию — это защищает от SQL-инъекций и делает код надёжнее.
Разъяснивший Python
Никогда не вставляй пользовательские данные напрямую в SQL-запросы. Используй параметризацию — это защищает от SQL-инъекций и делает код надёжнее.
Разъяснивший Python
💯1
Как реализовать анти-спам бота?
В данной статье автор рассказывает, как сделал для Телеграм-канала анти-спам бота. Ты узнаешь, почему не все решения подойдут для такой задачи, и как ChatGPT может облегчить задачу.
Читать...
Разъяснивший Python
В данной статье автор рассказывает, как сделал для Телеграм-канала анти-спам бота. Ты узнаешь, почему не все решения подойдут для такой задачи, и как ChatGPT может облегчить задачу.
Читать...
Разъяснивший Python
Хабр
Как ChatGPT удалил в нашем чате 555 спам-сообщений с точностью 98,38%
Небольшой православный телеграм-канал на ~4 тыс. чел., где я состою в числе редакторов, ежедневно атакуют спамеры. Ввиду его тематики к обычному спаму прибавляется еще и разный специфический, о чем я...
Атрибуты класса и атрибуты экземпляра (ч.1)
Переменные класса и переменные в экземплярах класса внутренне обрабатываются как словари объекта класса. Если имя переменной не найдено в словаре текущего класса, выполняется поиск по нему в родительских классах.
Разъяснивший Python
Переменные класса и переменные в экземплярах класса внутренне обрабатываются как словари объекта класса. Если имя переменной не найдено в словаре текущего класса, выполняется поиск по нему в родительских классах.
Разъяснивший Python
Атрибуты класса и атрибуты экземпляра (ч.2)
+= Оператор изменяет изменяемый объект на месте, не создавая новый объект. Таким образом, изменение атрибута одного экземпляра влияет на другие экземпляры, а также на атрибут class.
Разъяснивший Python
+= Оператор изменяет изменяемый объект на месте, не создавая новый объект. Таким образом, изменение атрибута одного экземпляра влияет на другие экземпляры, а также на атрибут class.
Разъяснивший Python
Масштабирование глубокого обучения с помощью Horovod и Kubernetes
В этой статье пойдет речь о том, как масштабировать модельки с помощью Horovod и Kubernetes.
Читать...
Разъяснивший Python
В этой статье пойдет речь о том, как масштабировать модельки с помощью Horovod и Kubernetes.
Читать...
Разъяснивший Python
Хабр
Масштабирование глубокого обучения с помощью Horovod и Kubernetes
Привет, Хабр! Horovod — это фреймворк для распределенного глубокого обучения, изначально разработанный в Uber . Он позволяет масштабировать обучение моделей на сотни и тысячи GPU, сокращая время...
Уступая от ... return! (ч.1)
Куда "wtf" делся? Это из-за какого-то особого эффекта yield from?
Начиная с Python 3.3, стало возможным использовать return инструкцию со значениями внутри генераторов (см. PEP380). В официальных документах говорится, что,
"... return expr в генераторе возникают причины StopIteration(expr), которые возникают при выходе из генератора".
Разъяснивший Python
Куда "wtf" делся? Это из-за какого-то особого эффекта yield from?
Начиная с Python 3.3, стало возможным использовать return инструкцию со значениями внутри генераторов (см. PEP380). В официальных документах говорится, что,
"... return expr в генераторе возникают причины StopIteration(expr), которые возникают при выходе из генератора".
Разъяснивший Python
Уступая от ... return! (ч.2)
В случае с some_func(3), StopIteration возникает в начале из-за return заявления. StopIteration Исключение автоматически перехватывается внутри list(...) оболочки и for цикла. Следовательно, два приведенных выше фрагмента приводят к пустому списку.
Чтобы получить ["wtf"] от генератора some_func, нам нужно перехватить StopIteration исключение.
Разъяснивший Python
В случае с some_func(3), StopIteration возникает в начале из-за return заявления. StopIteration Исключение автоматически перехватывается внутри list(...) оболочки и for цикла. Следовательно, два приведенных выше фрагмента приводят к пустому списку.
Чтобы получить ["wtf"] от генератора some_func, нам нужно перехватить StopIteration исключение.
Разъяснивший Python
Условное присваивание с оператором or
Иногда нужно задать значение по умолчанию, если переменная пуста или None. Вместо длинной конструкции if, можно использовать короткий трюк.
Итог:
Оператор or — удобный способ задать значение по умолчанию, когда переменная может быть пустой, None, 0 или ''. Упрощает код и делает его чище.
Разъяснивший Python
Иногда нужно задать значение по умолчанию, если переменная пуста или None. Вместо длинной конструкции if, можно использовать короткий трюк.
Итог:
Оператор or — удобный способ задать значение по умолчанию, когда переменная может быть пустой, None, 0 или ''. Упрощает код и делает его чище.
Разъяснивший Python
Nan-рефлексивность (ч.1)
'inf' и 'nan' - это специальные строки (без учета регистра), которые при явном приведении к float типу используются для представления математической "бесконечности" и "не числа" соответственно.
Поскольку, согласно стандартам IEEE NaN != NaN, соблюдение этого правила нарушает предположение о рефлексивности элемента коллекции в Python, т. Е. если x является частью коллекции, подобной list, реализации, подобные comparison, основаны на предположении, что x == x.
Разъяснивший Python
'inf' и 'nan' - это специальные строки (без учета регистра), которые при явном приведении к float типу используются для представления математической "бесконечности" и "не числа" соответственно.
Поскольку, согласно стандартам IEEE NaN != NaN, соблюдение этого правила нарушает предположение о рефлексивности элемента коллекции в Python, т. Е. если x является частью коллекции, подобной list, реализации, подобные comparison, основаны на предположении, что x == x.
Разъяснивший Python
Используй enumerate вместо счётчиков вручную
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
Итог:
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Разъяснивший Python
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
Итог:
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Разъяснивший Python
Распаковка словаря в аргументы функции
Иногда нужно передать значения из словаря в функцию — можно сделать это красиво и лаконично.
data автоматически распакует ключи словаря как имена аргументов, а значения — как аргументы функции.
Итог:
Когда у тебя есть словарь с нужными данными, не передавай каждый параметр вручную — просто используй . Это сокращает код и повышает читаемость.
Разъяснивший Python
Иногда нужно передать значения из словаря в функцию — можно сделать это красиво и лаконично.
data автоматически распакует ключи словаря как имена аргументов, а значения — как аргументы функции.
Итог:
Когда у тебя есть словарь с нужными данными, не передавай каждый параметр вручную — просто используй . Это сокращает код и повышает читаемость.
Разъяснивший Python
Nan-рефлексивность (ч.2)
Из-за прошлого предположения сначала сравнивается идентификатор (поскольку это быстрее) при сравнении двух элементов, а значения сравниваются только тогда, когда идентификаторы не совпадают.
Поскольку идентификаторы x и y различны, учитываются значения, которые также различны; следовательно, сравнение возвращается False на этот раз.
Разъяснивший Python
Из-за прошлого предположения сначала сравнивается идентификатор (поскольку это быстрее) при сравнении двух элементов, а значения сравниваются только тогда, когда идентификаторы не совпадают.
Поскольку идентификаторы x и y различны, учитываются значения, которые также различны; следовательно, сравнение возвращается False на этот раз.
Разъяснивший Python
Быстрая проверка времени выполнения с timeit
Иногда нужно быстро узнать, сколько времени занимает тот или иной фрагмент кода. Вместо написания таймеров — используй модуль timeit.
Модуль timeit точно измеряет производительность фрагмента кода и учитывает мелкие колебания времени.
Итог:
timeit — отличный инструмент для быстрой и точной оценки производительности. Удобен для сравнений разных реализаций алгоритмов и оптимизаций.
Разъяснивший Python
Иногда нужно быстро узнать, сколько времени занимает тот или иной фрагмент кода. Вместо написания таймеров — используй модуль timeit.
Модуль timeit точно измеряет производительность фрагмента кода и учитывает мелкие колебания времени.
Итог:
timeit — отличный инструмент для быстрой и точной оценки производительности. Удобен для сравнений разных реализаций алгоритмов и оптимизаций.
Разъяснивший Python