Python/ django
59K subscribers
2.53K photos
193 videos
48 files
3.26K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
#k0d #programming

Достойный #труд на русском, без регистрации и смс
На первый взгляд может показаться немного жестковатой, но читается легко и интересно. Щепотка математики придает некоторой пикантности описываемым алгоритмам. Опытным программистам прописывается стандартными порциями во время или после принятия пищи. Не позднее, чем за 6 часов до сна. Приятного аппетита и храни вас Python Software Foundation!

print("[club8056712|Python k0d]") # 🤓

#python #код #django #питон #джанго #программирование #cod #coding #ML #DataMining #deeplearning #neuralnets #neuralnetworks #neuralnetworks #ArtificialIntelligence #MachineLearning #DigitalTransformation #tech #ML #python
⚡️ Rust vs Python - как найти баланс между скоростью и простотой

JetBrains выпустили подробный разбор, где сравнивают Python и Rust без фанатизма — по скорости, синтаксису, памяти, экосистеме, конкурентности и даже по карьерным сценариям.

Главный вывод: Python нужен там, где важна скорость разработки и богатая экосистема, Rust, когда критична производительность, безопасность и масштабируемость. Всё чаще их используют вместе: Python для логики, Rust для самых горячих участков.

Ключевые моменты

Рост и популярность
- Python уверенно расширяет аудиторию: быстрый вход, огромная экосистема, удобство для ML, веба и автоматизации.
- Rust годами остаётся самым любимым языком разработчиков — благодаря безопасности памяти, скорости и надёжности.

Типы и управление памятью
- Python — динамическая типизация и удобный GC: легко начать, но ошибки всплывают в рантайме.
- Rust — строгая типизация, система владения и заимствований, отсутствие GC: ошибки ловятся на этапе компиляции, производительность предсказуема.

Производительность и конкурентность
- Python ограничен GIL: хорош для I/O, но CPU-параллелизм требует multiprocessing или расширений.
- Rust не имеет GIL — настоящая параллельность, «бесстрашная» конкурентность и контроль безопасности компилятором.

Экосистема
- Python — PyPI, Jupyter, зрелые фреймворки для DS/ML, веба, автоматизации.
- Rust — Cargo и crates.io, сильная база для CLI, системного софта, WebAssembly.

Комбинация Python + Rust
- Тренд — ускорять Python-проекты Rust-модулями.
- Библиотеки типа pydantic-core или Ruff показывают огромный прирост скорости.
- PyO3 делает интеграцию очень простой: Rust-код можно вызывать как обычный Python-модуль.

Карьера
- Python - широкие вакансии, огромный спрос в данных и ML.
- Rust - меньше позиций, но выше специализация в инфраструктуре, системной разработке и высоконагруженных сервисах.

Как выбирать
- Нужна скорость разработки и гибкость — Python.
- Нужна производительность и надёжность — Rust.
- Нужны и то, и другое — гибридный подход Python + Rust.

Подробный разбор
- в блоге JetBrains:
https://blog.jetbrains.com/rust/2025/11/10/rust-vs-python-finding-the-right-balance-between-speed-and-simplicity/

#Rust #Python #Programming #Backend #Performance

@pythonl
24👍12😁3🔥2
🐍 Python-совет: как объединить списки разной длины и не потерять данные

Обычный zip() останавливается на самом коротком списке:


numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c"]

print(list(zip(numbers, letters)))
# [(1, 'a'), (2, 'b'), (3, 'c')]


Элементы 4 и 5 просто исчезнут. Чтобы сохранить их, используйте zip_longest():


from itertools import zip_longest

result = zip_longest(
numbers,
letters,
fillvalue="нет значения",
)

print(list(result))


Результат:


[
(1, "a"),
(2, "b"),
(3, "c"),
(4, "нет значения"),
(5, "нет значения"),
]


А когда списки обязаны иметь одинаковую длину, в Python 3.10+ лучше включить проверку:


zip(numbers, letters, strict=True)


Вместо тихой потери данных Python сразу выбросит ValueError.

Полезно при обработке таблиц, CSV, результатов API и параллельных наборов данных.

#Python #Programming #PythonTips
🔥86👍5🎉1
🐍 В Python у while есть else. И многие разработчики узнают об этом спустя годы

Выглядит непривычно:


number = 0

while number < 5:
print(number)
number += 1
else:
print("Цикл завершился")


Блок else выполнится, если цикл закончился естественно, то есть условие while стало ложным.

Но есть важный нюанс. Если внутри сработает break, else уже не выполнится.


number = 0

while number < 5:
if number == 3:
break

number += 1
else:
print("Сюда не попадём")


Из-за этого while...else удобно использовать там, где нужно отличить нормальное завершение поиска от досрочного выхода.

Например, цикл пытается найти нужное значение. Если нашёл, делает break. Если дошёл до конца без успеха, срабатывает else.

Синтаксис существует в Python давно, но до сих пор выглядит как маленькая пасхалка языка.

#Python #Programming #Backend #PythonTips
12👍6🔥4😱2