Pythoner
رفتن به کانال در Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
نمایش بیشتر6 622
مشترکین
+124 ساعت
-87 روز
-4030 روز
آرشیو پست ها
6 622
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
6 622
✈️Когда мы открываем Яндекс.Карты, Google Maps или сервис доставки еды — за кулисами всегда работает геокодинг.
Приложение должно понять:
- Где находится пользователь
- Как далеко курьер от адреса
- Какие ближайшие отели или кафе показать
Всё это можно сделать прямо из Python с помощью библиотеки Geopy.
➡️ Что умеет Geopy:
- Геокодинг — превращает адрес в координаты
(«Москва, Красная площадь» → 55.7539, 37.6208)
- Обратный геокодинг — по координатам даёт адрес
(55.7539, 37.6208 → «Красная площадь, Москва, Россия»)
- Расстояния — считает путь между точками (в км, милях, морских милях)
- Поддержка разных сервисов: OpenStreetMap (Nominatim), Google, Яндекс, Bing, ArcGIS и др.
➡️Примеры:
from geopy.geocoders import Nominatim
from geopy.distance import geodesic
# Инициализация геокодера
geo = Nominatim(user_agent="geo_app")
# 1️⃣ Адрес → координаты
moscow = geo.geocode("Москва, Красная площадь")
print("Москва:", moscow.latitude, moscow.longitude)
# 2️⃣ Координаты → адрес
place = geo.reverse("55.7539, 37.6208")
print("Адрес:", place.address)
# 3️⃣ Расстояние Москва–СПб
p1 = (moscow.latitude, moscow.longitude)
p2 = (59.9343, 30.3351) # Санкт-Петербург
print("Расстояние:", geodesic(p1, p2).km, "км")
🔫Результат:
Москва: 55.7539, 37.6208 Адрес: Красная площадь, Москва, Россия Расстояние: ~634 км 🚄➡️ Где пригодится Geopy: - Логистика: рассчитывать маршруты доставки - Аналитика: строить тепловые карты заказов - Travel-сервисы: находить ближайшие отели или достопримечательности - Стартапы: от «поиска ближайшей кофейни» до «глобального трекера велосипедов» 💡Заключение Geopy делает Python ближе к реальному миру. С его помощью можно писать приложения, которые не просто что-то считают, а реально «понимают» где находится человек, бизнес или объект. 🐍 Pythoner
6 622
✈️В Python можно сразу присвоить значения нескольким переменным в одной строке. Это удобно и делает код короче.
x, y, z = 1, 2, 3
print(x, y, z) # 1 2 3
➡️Можно использовать для обмена значениями без временной переменной:
a, b = 5, 10
a, b = b, a
print(a, b) # 10 5
💡 Это стандартный приём в Python, который экономит строки и делает код читаемым.
🐍 Pythoner6 622
✈️Global Interpreter Lock (GIL) — это механизм в CPython, который ограничивает выполнение Python-кода одним потоком за раз, даже на многопроцессорных системах.
➡️Зачем нужен GIL?
Он предотвращает проблемы с управлением памятью и упрощает работу интерпретатора. Однако из-за него многопоточные программы не могут эффективно использовать несколько ядер процессора.
➡️Когда GIL мешает?
- В CPU-интенсивных задачах (например, обработка данных, вычисления) многопоточность не дает прироста производительности.
- В I/O-интенсивных задачах (сетевые запросы, работа с файлами) GIL почти не влияет, так как потоки могут освобождать блокировку во время ожидания операций ввода-вывода.
💡Решение:
Если нужна настоящая параллельность, используйте многопроцессорность (
multiprocessing), которая запускает отдельные процессы без GIL, или попробуйте альтернативные реализации Python, такие как Jython или PyPy.
🐍 Pythoner6 622
Если честно, меня бесят каналы, где непонятно кто учит программированию. На деле там копипаста с первой страницы гугла, которая грузит мозги.
Но есть и исключения. Например, канал @devsp. Его автор — ведущий разраб в области искусственного интеллекта. На минуточку, он приложил руку к самым нашумевшим нейронкам — Claude, Chat GPT и DeepSeek.
А теперь представьте, что мастодонт такого уровня ЛИЧНО делится внутрянкой своей работы и объясняет сложные концепции так, что поймёт даже отсталый двоечник.
Вещает про Data Science и машинное обучение с упором на практику (которой даже в платных курсах сильно не хватает).
Короче, если хотите быстро и без проблем расти в профессии — обязательно подпишитесь. Редко где найдешь такой баланс теории, подачи и практики: @devsp
6 622
✈️UScrapper — это относительно новая библиотека Python, созданная для упрощения веб-скрапинга. Она предоставляет высокоуровневый интерфейс для извлечения данных с веб-страниц без необходимости писать много кода.
➡️UScrapper особенно полезен для начинающих разработчиков и для тех, кто хочет быстро получить структурированные данные без глубокого погружения в детали HTML, CSS-селекторов или XPath.
➡️Пример извлечение таблиц со страницы:
from uscrapper import extract_tables
url = "https://en.wikipedia.org/wiki/List_of_countries_by_population"
tables = extract_tables(url)
# Первые 5 строк первой таблицы
print(tables[0].head())
💡Заключение
Инструмент оснащен передовыми модулями обхода анти-парсинга и поддерживает технологии для извлечения информации из всех ссылок в пределах одного домена. Кроме того, в программе предусмотрена возможность создания отчета, содержащего все извлеченные данные.
🐍 Pythoner6 622
✈️Метод getitem позволяет обращаться к объектам класса по индексу или ключу, как к спискам или словарям.
➡️Пример:
class CustomList:
def init(self, data):
self.data = data
def getitem(self, index):
return self.data[index] # Позволяет использовать obj[index]
nums = CustomList([10, 20, 30])
print(nums[1]) # 20
➡️Зачем нужен:
- Позволяет настроить доступ к элементам объекта.
- Делает объекты итерируемыми (например, в for-циклах).
- Помогает создавать свои структуры данных, работающие как списки или словари.
💡Заключение
getitem делает объекты гибкими и удобными в использовании, улучшая читаемость кода!
🐍 Pythoner6 622
🤔Разбор
Разбор кода по шагам:
s = "python"
1. s[1:5:2]
Формат среза: [start:stop:step]
start = 1, stop = 5 (не включительно), step = 2
Берём символы с индексами 1 и 3:
s[1] = 'y'
s[3] = 'h'
Результат: 'yh'
2. s[::-1]
Шаг -1 → идём с конца к началу → переворачиваем строку полностью
'python' → 'nohtyp'
Результат: 'nohtyp'
3. s[::3]
Шаг 3, start и stop не указаны → берём от начала до конца, каждый 3-й символ
Индексы, которые берём: 0, 3
s[0] = 'p'
s[3] = 'h'
Результат: 'ph'
Итоговый вывод:
'yh', 'nohtyp', 'ph'
🐍 Pythoner
6 622
✈️Когда работаешь с большими массивами данных, производительность кода становится критически важной. Рассмотрим, как можно ускорить обработку данных, используя библиотеку NumPy вместо стандартных циклов Python.
➡️Проблема: медленные циклы
Допустим, у нас есть список чисел, и мы хотим возвести каждое число в квадрат:
data = list(range(1_000_000)) squared = [x**2 for x in data] # Медленно!🔫Этот код работает, но на больших объемах данных циклы Python работают неэффективно, что может значительно замедлить выполнение программы. ➡️Решение: NumPy Используем библиотеку NumPy, которая оптимизирована для работы с массивами:
import numpy as np
data_np = np.arange(1_000_000)
squared_np = data_np ** 2 # В десятки
🔫NumPy использует векторизацию, что позволяет выполнять операции над целыми массивами данных за одно обращение, значительно ускоряя вычисления.
💡Заключение
Если ваш код обрабатывает большие объемы данных, замена циклов Python на операции с NumPy может ускорить выполнение в 10–100 раз! Это особенно важно в научных вычислениях, анализе данных и машинном обучении, где скорость обработки данных критична.
🐍 Pythoner6 622
Тариф, с которым хватит на всё
50 ГБ и безлимитные минуты за 390 ₽ в месяц, если перенесете номер в Т-Мобайл до 30 сентября
Узнать больше
#реклама
tbank.ru
О рекламодателе
6 622
✈️По умолчанию атрибуты хранятся в словаре dict, но этот подход неэффективен по памяти, особенно если создаётся много однотипных объектов. slots ограничивает список атрибутов у экземпляров класса, экономя память за счет отказа от dict.
➡️Обычный класс без slots:
class Person:
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # Можно добавить новый атрибут
➡️Класс с slots:
class Person:
slots = ("name", "age") # Разрешены только эти атрибуты
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # ❌ AttributeError: 'Person' object has no attribute 'city'
💡Плюсы slots
- Экономит память (не создается dict)
- Ускоряет доступ к атрибутам
- Предотвращает создание лишних атрибутов
🐍 Pythoner6 622
Гайд для РОПов по проведению эффективных вебинаров
Как руководителям отделов продаж увеличить количество успешных сделок при том же объеме лидов с помощью вебинаров?
Гайд от МТС Линк по обучающим вебинарам для отделов продаж.
✅ В гайде:
- Как эффективнее прокачивать скиллы менеджеров и закрывать больше сделок за меньшие сроки;
- Как организовать тренинг так, чтобы участники действительно подключились и дошли до финального модуля;
- Как выявить слабого менеджера и улучшить его показатели;
- Как сэкономить время на организации вебинара и пригласить всех участников в 2 клика.
Бонус внутри: 5 прикладных советов по контролю внимания участников во время вебинара
✨ Скачайте гайд бесплатно по ссылке
Скачать
#реклама 16+
mts-link.ru
О рекламодателе
6 622
✈️Хочешь, чтобы твой скрипт принимал параметры из командной строки?
В Python для этого есть встроенный инструмент — argparse.
➡️Пример:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--name', required=True, help='Имя пользователя')
parser.add_argument('--age', type=int, help='Возраст')
args = parser.parse_args()
print(f"Привет, {args.name}! Тебе {args.age} лет.")
🔫Как работает
Запускаем в терминале:
python script.py --name Алиса --age 25
Вывод:
Привет, Алиса! Тебе 25 лет.💡Зачем это нужно? - Удобно передавать параметры - Можно добавлять флаги, типы, help-сообщения - Работает из коробки — без установки сторонних библиотек 🐍 Pythoner
6 622
Ищу желающих выполнять задачи с помощью ИИ!
Работа полностью на удаленке с зп до 150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться":
Зарегистрироваться
#реклама 16+
ganstaagency.com
О рекламодателе
6 622
🤔Разбор
В Python аргументы по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
Когда мы вызываем func(1) → список y создаётся один раз и сохраняется. В него добавляется 1. Результат: [1].
При вызове func(2) используется тот же самый список, в который уже добавлена 1. Теперь добавляется 2. Результат: [1, 2].
При вызове func(3, []) мы передаём новый пустой список вместо значения по умолчанию. В него добавляется 3. Результат: [3].
При вызове func(4) снова используется старый общий список, где уже [1, 2]. Добавляется 4. Результат: [1, 2, 4].
🐍 Pythoner
6 622
Скидки до 20% на чистоту и порядок
✨ Средства для стирки
✨ Средства для посуды
✨ Средства для уборки
✨ И многое другое
Купить
#реклама
market.yandex.ru
О рекламодателе
