В статье на примере FastAPI показывают, как Keycloak упрощает управление доступом: универсальные принципы авторизации для любого бэкенда без лишней головной боли.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🔥1
DataCamp предлагает пошаговые курсы и проекты, направленные на изучение Python для анализа данных, машинного обучения и визуализации. Уроки сопровождаются интерактивными заданиями и практическими проектами.
Примечательно, что платформа фокусируется на реальных применениях Python в области Data Science, а курсы обновляются в соответствии с современными требованиями индустрии.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝5❤2
functools.reduce — свёртка последовательности в одно значениеПозволяет последовательно применять функцию к элементам итерируемого объекта, сворачивая его к одному результату. Полезно для операций накопления, например, умножения всех чисел в списке.
from functools import reduce
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)
print(product) # 24
reduce() берёт два элемента, применяет функцию и использует результат как аргумент для следующего шага.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥3❤1
В статье автор делится своим опытом создания Clite — лёгкого фреймворка на Python для CLI без зависимостей: альтернатива Typer и Click с максимумом возможностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21😍1
BeautifulSoup — мощная библиотека для обработки и парсинга HTML и XML. Подходит для извлечения данных с веб-страниц, парсинга таблиц и автоматизации сбора информации.
pip install beautifulsoup4 requests
import requests
from bs4 import BeautifulSoup
# Загружаем страницу
url = "https://example.com"
response = requests.get(url)
# Разбираем HTML
soup = BeautifulSoup(response.text, "html.parser")
# Извлекаем заголовок
title = soup.find("h1").text
print(title)
1.
requests.get(url) загружает HTML-страницу.2.
BeautifulSoup(response.text, "html.parser") парсит HTML-код.3.
soup.find("h1").text извлекает текст из первого тега <h1>.Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3🤝1
В статье рассказывают, как использовать Whisper от OpenAI для превращения записи собеседования в текст: удобно анализировать ответы без утомительного переслушивания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤1
Как работает оператор
is в Python и чем он отличается от оператора ==?Пример
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # ➔ True
print(a is b) # ➔ False
print(a is c) # ➔ True
Ответ
Оператор == проверяет равенство значений двух объектов, тогда как оператор is проверяет идентичность объектов, то есть указывает на то, ссылаются ли переменные на один и тот же объект в памяти.
В примере выше:
a == b возвращает True, так как списки содержат одинаковые элементы.
a is b возвращает False, так как это разные объекты в памяти.
a is c возвращает True, так как переменная c ссылается на тот же объект, что и a.
❗️ Используйте is, когда нужно проверить идентичность (например, с объектами None, одиночными экземплярами), и ==, когда важны сами значения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29👍6🔥1
termcolor — лёгкая и удобная библиотека для цветного форматирования текста в терминале. Позволяет добавлять цвета и стили к выводу прямо в консоли.from termcolor import colored
print(colored("Успешно!", color="green"))
print(colored("Внимание!", color="yellow", attrs=["bold"]))
print(colored("Ошибка!", color="red", attrs=["reverse", "blink"]))
pip install termcolor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👏4👍3🤔2❤1
Автор делится настройками, плагинами и горячими клавишами в PyCharm, которые разработчики почему-то игнорируют. Немного магии — и IDE начинает работать на тебя.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍1🏆1
Full Stack Python — это структурированный ресурс, объясняющий, как применять Python во всём технологическом стеке: от веб-разработки и работы с базами данных до деплоя и DevOps.
Примечательно, что сайт содержит не просто документацию, а концептуальные объяснения с примерами и ссылками на проверенные библиотеки и инструменты. Отлично подходит для тех, кто хочет видеть общую картину.
Please open Telegram to view this post
VIEW IN TELEGRAM
😇4🔥1
operator.itemgetter — извлечение полей из объектов и коллекцийПозволяет удобно и быстро получать элементы по индексам или ключам, особенно полезно в сочетании с функциями сортировки и группировки.
from operator import itemgetter
data = [("Алиса", 25), ("Боб", 30), ("Чарли", 20)]
# Сортируем по возрасту (второй элемент кортежа)
sorted_data = sorted(data, key=itemgetter(1))
print(sorted_data) # [('Чарли', 20), ('Алиса', 25), ('Боб', 30)]
itemgetter(n) возвращает функцию, извлекающую n-й элемент.sorted(), map(), groupby() и др.Please open Telegram to view this post
VIEW IN TELEGRAM
🏆8👍5
Рассказываем, как метод «Пяти почему» помог детям не бояться ошибок в коде и даже кайфовать от их анализа. Фрустрация — прочь, осознанность — в продакшн.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
requests — мощная и простая в использовании библиотека для выполнения HTTP-запросов. Часто применяется для получения данных из API в формате JSON.pip install requests
import requests
url = "https://api.github.com/users/octocat"
response = requests.get(url)
# Получаем JSON-ответ
data = response.json()
print(data["login"]) # octocat
1.
requests.get(url) делает GET-запрос к API.2.
.json() автоматически преобразует JSON-ответ в словарь.3. Можно обращаться к данным как к обычному Python-объекту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👏4😐3
Что происходит при использовании mutable объектов как значения по умолчанию в аргументах функции?
Пример
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1)) # ➔ [1]
print(append_to_list(2)) # ➔ [1, 2]
print(append_to_list(3)) # ➔ [1, 2, 3]
Ответ
В Python значения по умолчанию вычисляются один раз при определении функции. Если в качестве значения по умолчанию используется изменяемый объект (например, список), он сохраняется между вызовами функции.
В примере выше список my_list создаётся один раз и затем повторно используется при каждом вызове append_to_list(), что приводит к накапливанию значений.✅ Правильный способ избежать этого:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list❗️ Никогда не используйте изменяемые объекты (list, dict, set...) как значения по умолчанию, если не уверены, что именно этого поведения хотите.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6❤2⚡1
Пошаговый гайд по установке драйверов NVIDIA (включая 50xx серию) и настройке Container Toolkit на Ubuntu и Debian-подобных. Быстро, по делу, без шаманства.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4