👉 Есть ли в Python указатели (pointer)?
Об указателях обычно говорят в контексте C-языков. Pointer — это переменная, которая содержит адрес в памяти, где хранится значение другой переменной. Есть ли в Python подобные объекты?
Если коротко: всё зависит от конкретного определения указателя.
❓В C адрес переменной можно получить с помощью оператора &. Если этот адрес сохранить в указателе, то можно получить доступ к значению по этому адресу, используя оператор *. В Python аналогом & можно назвать функцию id(), которая возвращает адрес в памяти (по крайней мере это касается CPython). Однако аналога * в языке нет.
▶️ При этом, как считает автор новой статьи, каждую переменную в Python можно назвать указателем.
🔗 Более подробно об этом читайте по ссылке
Об указателях обычно говорят в контексте C-языков. Pointer — это переменная, которая содержит адрес в памяти, где хранится значение другой переменной. Есть ли в Python подобные объекты?
❓В C адрес переменной можно получить с помощью оператора &. Если этот адрес сохранить в указателе, то можно получить доступ к значению по этому адресу, используя оператор *. В Python аналогом & можно назвать функцию id(), которая возвращает адрес в памяти (по крайней мере это касается CPython). Однако аналога * в языке нет.
▶️ При этом, как считает автор новой статьи, каждую переменную в Python можно назвать указателем.
🔗 Более подробно об этом читайте по ссылке
👍8❤3🤔2
📖 Подборка Python-библиотек для обработки текста
🐍 NLTK — предоставляет доступ к более чем 50 корпусам и лексическим ресурсам, таким как WordNet, а также набор инструментов для классификации, токенизации, стемминга, теггинга, парсинга и семантического анализа.
🐍 Natasha — проект, который ориентирован на работу с русскоязычными текстами. Включает в себя инструменты для сегментации текста, морфологического анализа, лемматизации, именованных сущностей и синтаксического анализа.
🐍 SpaCy — библиотека для обработки естественного языка, поддерживающая 75+ языков, а также включающая предобученные векторы слов.
🐍 Gensim — библиотека для тематического моделирования и обработки больших корпусов текстов.
🐍 TextBlob — предоставляет простой API для выполнения различных задач обработки естественного языка. Позиционирует себя как доступный инструмент для начинающих.
🐍 Pattern — библиотека Python для веб-майнинга и обработки естественного языка. Поддерживает анализ текста, включая определение частей речи, извлечение именованных сущностей и многое другое.
💬 А чем пользуетесь вы? Что бы вы посоветовали?
🐍 NLTK — предоставляет доступ к более чем 50 корпусам и лексическим ресурсам, таким как WordNet, а также набор инструментов для классификации, токенизации, стемминга, теггинга, парсинга и семантического анализа.
🐍 Natasha — проект, который ориентирован на работу с русскоязычными текстами. Включает в себя инструменты для сегментации текста, морфологического анализа, лемматизации, именованных сущностей и синтаксического анализа.
🐍 SpaCy — библиотека для обработки естественного языка, поддерживающая 75+ языков, а также включающая предобученные векторы слов.
🐍 Gensim — библиотека для тематического моделирования и обработки больших корпусов текстов.
🐍 TextBlob — предоставляет простой API для выполнения различных задач обработки естественного языка. Позиционирует себя как доступный инструмент для начинающих.
🐍 Pattern — библиотека Python для веб-майнинга и обработки естественного языка. Поддерживает анализ текста, включая определение частей речи, извлечение именованных сущностей и многое другое.
💬 А чем пользуетесь вы? Что бы вы посоветовали?
👍5👾3❤2
🏆🎬🐍 Замените слово в названии какого-нибудь фильма словом «Питон».
Пишите свои варианты в комментарии👇
#интерактив
Пишите свои варианты в комментарии👇
#интерактив
😁5🔥3👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2🔥1
🐍 Подвох в работе со списками
Автор статьи описывает распространённую ошибку в Python, связанную с изменением списка во время итерации по нему.
⚠️ Удаление или изменение элементов списка во время прохода по нему может привести к непредсказуемому поведению.
В качестве решения автор предлагает создать новый список с нужными элементами или использовать list comprehension.
🔗 Более подробно можно прочесть по этой ссылке
Автор статьи описывает распространённую ошибку в Python, связанную с изменением списка во время итерации по нему.
⚠️ Удаление или изменение элементов списка во время прохода по нему может привести к непредсказуемому поведению.
В качестве решения автор предлагает создать новый список с нужными элементами или использовать list comprehension.
🔗 Более подробно можно прочесть по этой ссылке
👍6🔥1
Для чего нужен декоратор property?
В Python для доступа к «приватным» свойствам используются специальные методы класса — геттеры и сеттеры (
Property выполняет ту же задачу, а также улучшает инкапсуляцию. Если прописать его как декоратор
▶️ Пример кода:
#вопросы_с_собеседований
В Python для доступа к «приватным» свойствам используются специальные методы класса — геттеры и сеттеры (
get_name
, set_name
, например). Их нужно прописывать для каждого «приватного» свойства отдельно, что может сделать код громоздким. Зато сеттеры, например, позволяют проверять тип данных перед изменением значения какого-либо свойства.Property выполняет ту же задачу, а также улучшает инкапсуляцию. Если прописать его как декоратор
@property
перед каким-то методом, то он станет геттером, то есть будет возвращать значение атрибута. Помимо этого, можно использовать декораторы @property.setter
для превращения метода в сеттер и @property.deleter
для превращения метода в метод, который удаляет свойство.class Circle:
def __init__(self, radius):
self._radius = radius
@property
def radius(self):
"""Возвращает радиус круга."""
return self._radius
@radius.setter
def radius(self, value):
"""Устанавливает радиус круга, предварительно проверив, что значение положительное."""
if value >= 0:
self._radius = value
else:
raise ValueError("Радиус не может быть отрицательным")
@radius.deleter
def radius(self):
"""Удаляет радиус круга, заменяя его нулевым значением."""
self._radius = 0
#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥12
Forwarded from Библиотека программиста | программирование, кодинг, разработка
👩💻⭐ 14 талантливых женщин, сделавших неоценимый вклад в ИТ
Дочь распутного поэта, католическая монахиня, голливудская звезда и контр-адмирал — что может их объединять? Вклад в развитие ИТ!
👉 Читать статью
👉 Зеркало
Дочь распутного поэта, католическая монахиня, голливудская звезда и контр-адмирал — что может их объединять? Вклад в развитие ИТ!
👉 Читать статью
👉 Зеркало
🔥9🥱9👍3
Deque позволяет работать с очередями — структурой данных, которая устроена именно так, как называется. Добавление и удаление элементов в очереди происходит так, что первым из очереди удаляется элемент, который был и помещён туда первым.
from collections import deque
with open(filepath, "r") as file:
last_5_lines = deque(file, maxlen=5)
print(last_5_lines)
from collections import deque
def moving_averages(data, window_size):
values = []
window = deque(maxlen=window_size)
for element in data:
window.append(element)
values.append(sum(window) / len(window))
return values
🔗 Остальные примеры использования и другие подробности о deque можно прочесть в этой статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
👍6🔥1
Смёрдженный пулл-реквест добавляет возможность отключить GIL для free-threaded сборок. Сделать это можно двумя способами:
▫️
PYTHON_GIL=0
▫️
-X gil=0
Предусмотрена также возможность повторного включения GIL.
Ранее разработчики Python предупреждали, что отключение GIL сломает некоторые части текущего кода.
«Мы ожидаем, что отключение GIL поначалу будет довольно глючным. Поэтому, даже если мы собираемся отключить GIL по умолчанию в версии 3.13, мы, вероятно, захотим, чтобы GIL оставался включённым по умолчанию какое-то время».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤5
🐍🗺 Создавайте захватывающие интерактивные карты с помощью Python
В новой статье разберём библиотеку визуализации данных Plotly. Шаг за шагом научимся создавать и настраивать простые и интерактивные карты, а также работать с картами Хороплета— особым типом карт, в которых используется цветовое кодирование для обозначения данных по конкретным географическим областям, таким как страны, штаты или города.
🔗 Читать статью
🔗 Зеркало
В новой статье разберём библиотеку визуализации данных Plotly. Шаг за шагом научимся создавать и настраивать простые и интерактивные карты, а также работать с картами Хороплета
🔗 Читать статью
🔗 Зеркало
👍13❤3
Автор нового поста на «Хабре» рассуждает о том, зачем использовать аннотации типов и даёт ли это преимущество.
Аннотации типов были введены в Python в версии 3.5. Они помогают обозначать типы для переменных и функций. При этом они не обеспечивают проверку типов на уровне интерпретатора.
Вот так код на Python выглядит без аннотации типов:
def add(a, b):
return a + b
А вот так с аннотацией:
def add(a: int, b: int) -> int:
return a + b
🔗 Прочесть его мнение целиком можно здесь
А что вы думаете по этому поводу? Используете аннотацию типов в работе?
Please open Telegram to view this post
VIEW IN TELEGRAM
👏13👍9❤2🔥2😁1
🐍🎸 Курс Django. Часть 3: Основы работы с формами
В новой части курса разбираем основные методы создания, кастомного рендеринга и кастомной валидации форм.
🔗 Читать статью
🔗 Зеркало
➕ Предыдущие части:
Часть 1: Django — что это? Обзор и установка фреймворка, структура проекта
Часть 2: ORM и основы работы с базами данных
В новой части курса разбираем основные методы создания, кастомного рендеринга и кастомной валидации форм.
🔗 Читать статью
🔗 Зеркало
➕ Предыдущие части:
Часть 1: Django — что это? Обзор и установка фреймворка, структура проекта
Часть 2: ORM и основы работы с базами данных
❤11🔥6
📊 Визуализируем данные с помощью Seaborn
Это новый туториал от Real Python. В статье объясняется, как:
▫️установить и начать работать с Seaborn,
▫️какие типы графиков есть в библиотеке,
▫️что такое Seaborn Objects.
🔗 Ссылка на статью
Это новый туториал от Real Python. В статье объясняется, как:
▫️установить и начать работать с Seaborn,
▫️какие типы графиков есть в библиотеке,
▫️что такое Seaborn Objects.
🔗 Ссылка на статью
👍16❤3
Наверняка вы сталкивались с предупреждениями при исполнении программы. Чаще всего они говорят о том, что какие-то функции устарели. Но что если вам самим нужно создать такое предупреждение для потенциальных пользователей вашей программы?
☑️ Для этого в стандартной библиотеке Python есть модуль warnings. Создать предупреждение с его помощью очень легко:
import warnings
warnings.warn("Something wrong!")
Этот код выведет следующее:
<ipython-input-2-f9c3380a9245>:2: UserWarning: Something wrong!
warnings.warn("Something wrong!")
Вы можете самостоятельно выбрать тип предупреждения вместо типа по умолчанию
UserWarning
:warnings.warn("Oops!", category=RuntimeWarning)
✍️ Также в warnings есть контекстный менеджер для временного подавления предупреждений:
with warnings.catch_warnings():
warnings.simplefilter("ignore")
warnings.warn("Something wrong!")
В менеджере контекста все предупреждения просто игнорируются, что может пригодиться в некоторых случаях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤6👾3🥰1
❗Обновите Django: вышли патчи безопасности
Команда Django выпустила Django 5.0.3, Django 4.2.11 и Django 3.2.25. Эти релизы закрывают дыру в безопасности, которая была найдена ранее.
❓Речь идёт о проблеме CVE-2024-27351, которая позволяла провести атаку типа «отказ в обслуживании», вызванную регулярным выражением. Уязвимость касалась метода django.utils.text.Truncator.words() (при использовании параметра html=True) и фильтра шаблона truncatewords_html. При обработке специальной строки, которая подаётся на вход этому методу или фильтру, может возникнуть чрезмерное потребление ресурсов системы из-за особенностей работы регулярных выражений.
Команда Django просит всех пользователей обновиться как можно быстрее.
🔗 Прочесть подробности
Команда Django выпустила Django 5.0.3, Django 4.2.11 и Django 3.2.25. Эти релизы закрывают дыру в безопасности, которая была найдена ранее.
❓Речь идёт о проблеме CVE-2024-27351, которая позволяла провести атаку типа «отказ в обслуживании», вызванную регулярным выражением. Уязвимость касалась метода django.utils.text.Truncator.words() (при использовании параметра html=True) и фильтра шаблона truncatewords_html. При обработке специальной строки, которая подаётся на вход этому методу или фильтру, может возникнуть чрезмерное потребление ресурсов системы из-за особенностей работы регулярных выражений.
Команда Django просит всех пользователей обновиться как можно быстрее.
🔗 Прочесть подробности
👍18🎉3❤2
✨Awesome Python✨
Это репозиторий со списком лучших библиотек и фреймворков для множества задач. Включает в себя такие подразделы:
🔸Инструменты командной строки
▫️pgcli — PostgreSQL CLI с подсветкой синтаксиса;
▫️doitlive — инструмент для проведения презентаций в терминале.
🔸Разработка игр
▫️Arcade — фреймворк для создания игр с графикой и звуком;
▫️Pygame — набор модулей для написания игр.
🔸Обработка изображений
▫️pillow — библиотека для преобразования изображений;
▫️scikit-image — библиотека для научной обработки изображений.
🔗 Другие библиотеки смотрите в репозитории
Это репозиторий со списком лучших библиотек и фреймворков для множества задач. Включает в себя такие подразделы:
🔸Инструменты командной строки
▫️pgcli — PostgreSQL CLI с подсветкой синтаксиса;
▫️doitlive — инструмент для проведения презентаций в терминале.
🔸Разработка игр
▫️Arcade — фреймворк для создания игр с графикой и звуком;
▫️Pygame — набор модулей для написания игр.
🔸Обработка изображений
▫️pillow — библиотека для преобразования изображений;
▫️scikit-image — библиотека для научной обработки изображений.
🔗 Другие библиотеки смотрите в репозитории
👍7❤4
Такой призыв в конце февраля выпустил Office of the National Cyber Director (ONCD). Утверждается, что использование определённых языков программирования устраняет целый класс уязвимостей.
В самом пресс-релизе ONCD нет прямого указания на Python, однако ранее Cybersecurity and Infrastructure Security Agency (CISA) опубликовал список языков, обеспечивающих безопасную работу с памятью, и в него был включён Python. Помимо него в перечне есть C#, Go, Java, Rust и Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍2
🐍 Итоги недели в мире Python и обзоры новых инструментов
У нас есть еженедельная рассылка о последних открытиях и тенденциях в мире Python. Мы опубликовали новый выпуск на📰 .
Ниже — небольшая часть выпуска, а целиком читайте здесь 👈
😏 Мнение: пора переключаться с бэкенда на ИИ
Общемировой тренд — увеличение спроса на ИИ-разработчиков. И у Python-специалистов есть огромное преимущество — они без особых усилий могут переключиться с бэкенда на машинное обучение. Автор этой публикации рассказал, с чего проще всего начать — с изучения супервостребованной RAG-технологии.
🎩 Hatchet — эффективная альтернатива Celery
Hatchet — это новая система распределения задач для управления сложными процессами. Она позволяет создавать отказоустойчивые процессы, решающие проблемы параллелизма, справедливости распределения задач и ограничения скорости обработки. Обо всех преимуществах Hatchet читайте в рассылке.
🌐 Niquests — продвинутая альтернатива Requests
Новая библиотека лишена некоторых недостатков старой, а также имеет дополнительные фичи. Какие — подробно рассказываем в статье на vc.
➡ Вы можете подписаться на email-рассылку здесь
У нас есть еженедельная рассылка о последних открытиях и тенденциях в мире Python. Мы опубликовали новый выпуск на
Ниже — небольшая часть выпуска, а целиком читайте здесь 👈
Общемировой тренд — увеличение спроса на ИИ-разработчиков. И у Python-специалистов есть огромное преимущество — они без особых усилий могут переключиться с бэкенда на машинное обучение. Автор этой публикации рассказал, с чего проще всего начать — с изучения супервостребованной RAG-технологии.
🎩 Hatchet — эффективная альтернатива Celery
Hatchet — это новая система распределения задач для управления сложными процессами. Она позволяет создавать отказоустойчивые процессы, решающие проблемы параллелизма, справедливости распределения задач и ограничения скорости обработки. Обо всех преимуществах Hatchet читайте в рассылке.
🌐 Niquests — продвинутая альтернатива Requests
Новая библиотека лишена некоторых недостатков старой, а также имеет дополнительные фичи. Какие — подробно рассказываем в статье на vc.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥4
Forwarded from Библиотека задач по Python | тесты, код, задания
❤12👏2