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
loguru — продвинутая библиотека для логирования, которая делает работу с логами проще, мощнее и чище, чем стандартный logging. Позволяет писать логи в пару строк и легко настраивать вывод.
from loguru import logger
logger.debug("Это отладочное сообщение")
logger.info("Информация о процессе")
logger.warning("Предупреждение!")
logger.error("Произошла ошибка")
# Лог в файл с автоматической ротацией
logger.add("debug.log", rotation="1 MB")
pip install loguru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Python Weekly — это curated-дайджест, выходящий каждую неделю. В нём собраны свежие статьи, туториалы, релизы библиотек, вакансии и конференции, связанные с Python.
Примечательно, что все материалы отбираются вручную: без шумного контента, только качественные ссылки. Отлично подходит, чтобы быть в курсе последних трендов и узнавать о новых полезных инструментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
В статье сравниваю языки программирования по синтаксису, гибкости и боли. Ищу, где творчество помогает, а где мешает команде писать один код, а не десять несовместимых.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
threading.Timer — запуск кода с задержкойПозволяет выполнить функцию через заданный промежуток времени в отдельном потоке. Полезно для отложенных операций, напоминаний, автоматических задач.
import threading
def say_hello():
print("Привет через 5 секунд!")
# Запускаем функцию через 5 секунд
timer = threading.Timer(5.0, say_hello)
timer.start()
print("Ожидаем...")
threading.Timer(delay, function) создаёт таймер с задержкой delay в секундах..start() запускает таймер в фоновом потоке.Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7❤1
openpyxl — мощная библиотека для чтения и записи Excel-файлов (.xlsx) на Python. Подходит для автоматизации отчётов, обработки табличных данных и создания аналитических инструментов.pip install openpyxl
from openpyxl import load_workbook
# Загружаем существующий файл
wb = load_workbook("sales.xlsx")
ws = wb["Продажи"]
# Читаем строки
for row in ws.iter_rows(values_only=True):
print(row)
1.
Workbook() создаёт новый Excel-файл, load_workbook() — загружает существующий.2.
ws.append() добавляет строки, ws.iter_rows() перебирает ячейки.3.
wb.save() сохраняет измененияПолезно для бухгалтерии, аналитики, экспорта отчётов из Python-скриптов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤6