Python Portal
54.2K subscribers
2.54K photos
416 videos
51 files
1.05K links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
lmao 😂

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
34😁28
Кто-то сейчас делает веб-браузер с нуля.

Не форкает Chromium
Не использует WebKit
Не заимствует ничего из Gecko

С нуля.

Вот почему это почти безумная затея.

Практически все браузеры, которыми вы пользуетесь сегодня — Chrome, Edge, Brave, Opera, Arc, Samsung Internet — работают на Chromium. Safari работает на WebKit, от которого в своё время произошёл Chromium. Firefox — единственный независимый движок, и его доля рынка снижается уже больше десяти лет.

Браузерный движок — одна из самых сложных систем, о которой большинство людей даже не задумывается. Он парсит HTML, исполняет JavaScript, реализует CSS, обрабатывает криптографию, декодирует изображения, воспроизводит видео, управляет памятью — и всё это одновременно, для каждой вкладки, при этом поддерживая границу безопасности между вашей машиной и интернетом.

Создать такой движок с нуля — это то, что никому не удавалось успешно сделать уже больше десяти лет.

И всё же Ladybird это делает.

Более 1200 контрибьюторов. Каждый слой написан с нуля:

> LibWeb — движок рендеринга
> LibJS — JavaScript-движок
> LibWasm — WebAssembly
> LibCrypto / LibTLS — криптография
> LibGfx — графика
> LibMedia — аудио и видео

Каждая вкладка работает в отдельном sandboxed-процессе. Сетевые соединения и декодирование изображений вынесены в отдельные процессы, чтобы вредоносная страница не могла добраться до остальной системы.

Пока это pre-alpha. Релизов ещё нет. Но уже более 61K звёзд.

Когда один движок контролирует веб, одна компания фактически решает, каким будет интернет.

Именно эту проблему и пытается решить Ladybird.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍404
Распаковка словаря

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

- Использование функции list для извлечения ключей

Если у вас есть словарь и вы хотите получить его ключи в виде списка, можно использовать функцию list. Передача словаря в качестве аргумента этой функции возвращает список ключей словаря. См. ниже:

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# Извлечение ключей словаря
dict_keys = list(my_dict)
dict_keys


['name', 'age', 'city']


- Использование оператора (двойная звёздочка)

Если у вас есть функция, которая принимает значения словаря в качестве аргументов, вы можете использовать оператор ``, чтобы распаковать значения словаря при вызове функции. Ниже у нас есть функция, принимающая значения из словаря как аргументы. Мы используем оператор ** в словаре при вызове функции. Это распаковывает значения словаря и передаёт их в качестве аргументов функции.

def display_info(name, age, city):
print(f"Your name is {name}. You are {age} years old. "
f"You live in {city}")

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
display_info(**my_dict)


Your name is John. You are 30 years old. You live in New York


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6612🌭2🔥1
🎮 Хочешь зарабатывать на играх, а не только играть?

Игровая индустрия растёт каждый год — и ей нужны специалисты.

В XYZ School обучают профессиям, без которых не создаётся ни одна игра:

🧠 Гейм-дизайнер
🖌 Концепт художник
📱 Тестировщик мобильных игр
🎬 Специалист по визуальным эффектам
💻 Разработчик игр (Unity, Unreal Engine, C#, C++)
🎨 Художник трехмерных моделей (3D-художник)

На курсах ты не просто смотришь лекции — выполняешь практические задания, собираешь портфолио и работаешь под руководством специалистов, которые участвовали в проектах вроде Doom, Fortnite и Metro.

🚀 Начать можно без опыта.
👉🏻 Посмотреть курс

Erid: 2SDnjdtoshK
Название: ООО "ИКС ВАЙ ЗЕТ НЕТВОРК"
ИНН: 9705150153
2🌚1
Практики, которые раздражают других инженеров данных

Отсутствие аннотаций типов — это неуважение к себе и к другим, кто использует ваши пайплайны. Код, который вы пишете, не только для выполнения, но и для коммуникации.

В инженерии данных аннотации типов служат контрактом между шагами пайплайна, чётко определяя, какой тип данных функция ожидает и какой тип данных она вернёт. Это делает пайплайны более предсказуемыми и проще для отладки, так как каждая функция заранее сообщает свои требования.

Это выглядит нормально, но...

def enrich_user_names(df, user_lookup=None):
pass


Это не говорит, что такое df, какого типа user_lookup, или что функция должна вернуть. Теперь представьте, что это часть производственного пайплайна с 10+ участниками. Такая неопределённость становится багом.

Вот так будет лучше:

def enrich_user_names(
df: pd.DataFrame,
user_lookup: Optional[Dict[int, str]] = None
) -> pd.DataFrame:
pass


Чёткая коммуникация с самого начала. Каждый, кто увидит эту функцию, точно будет знать, что ожидать. Вот что значит чёткая коммуникация. Аннотации типов — в помощь

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
15👀3🤯2
Когда вам когда-либо нужно было добавить математическое описание для вашей функции на Python, но вы обнаруживали, что это занимает слишком много времени?

Непрограммисты не могут легко читать логику Python. Однако вручную конвертировать её в LaTeX — это медленно, и быстро становится устаревшим по мере изменения кода.

latexify_py решает эту проблему с помощью одного декоратора, генерируя LaTeX прямо из вашей функции, чтобы математика оставалась читаемой и всегда синхронизированной с кодом.

Основные возможности:
• Три декоратора для разных выводов: выражения, полные уравнения или псевдокод
• Отображает отрендеренный LaTeX прямо в ячейках Jupyter
• Функции продолжают работать нормально при вызове

Кроме того, latexify_py — это open source. Установите с помощью "pip install latexify-py".

Статья о 3 инструментах, которые конвертируют код Python в LaTeX: https://bit.ly/3Pw89yP
Запустите этот код: https://bit.ly/4bW2ycE

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍3
Люди — корень всех проблем. 😆

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁30🤝5
Люди и агенты писали бы код лучше, если бы можно было легко проверить, какие значения переменные обычно принимают в продакшене.

Хотя подобные подходы уже встречались (в каком-то смысле ещё со времён Smalltalk), Darklang выделяется как заметный пример: у каждой функции есть примеры прошлых HTTP-запросов, и можно увидеть, как реальные данные проходят через неё.

Ещё в 2018 году я немного исследовал похожую идею: что если можно кликнуть на любую функцию в коде и увидеть примеры прошлых входных и выходных данных?

Удалось трассировать/записывать произвольные программы на Ruby (очень медленно) благодаря гибкости интерпретатора Ruby. Можно было даже записать выполнение тестов и затем использовать это как примеры данных при чтении кода.

https://geoffreylitt.com/margin-notes/

Есть серьёзные сложности, чтобы сделать это реально рабочим. Записывать большой объём детального runtime-состояния — сложно и дорого по ресурсам. А удобно показывать это состояние прямо в редакторах кода исторически тоже было непросто (хотя сейчас, с агентами, ситуация быстро меняется — в чём-то становится проще).

В целом же runtime-состояние до сих пор сильно недоиспользуется в интерфейсах разработки, а агрегированные данные из продакшена — тем более. Людям и агентам гораздо полезнее видеть конкретные данные, а не только абстрактную логику.

Чёрт возьми, у нас уже есть AI — почему бы не предсказывать, как будут меняться переменные, исходя из контекста всей организации, а не только кодовой базы 😭

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Самый полный список видеокурсов по Computer Science в интернете.

cs-video-courses — 78K+ звёзд.

MIT.
Stanford University.
University of California, Berkeley.
Harvard University.
Carnegie Mellon University.
Indian Institutes of Technology.
Princeton University.
California Institute of Technology.

Всё бесплатно. Все лекции — в формате видео. Всё собрано в одном репозитории.

Темы:

→ Структуры данных и алгоритмы
→ Операционные системы
→ Распределённые системы
→ Системы баз данных
→ Компьютерные сети
→ Машинное обучение
→ Глубокое обучение
→ Обработка естественного языка (NLP)
→ Компьютерное зрение
→ Компьютерная графика
→ Безопасность
→ Квантовые вычисления
→ Робототехника
→ Блокчейн

От начального уровня (CS50) до продвинутого (6.824 Distributed Systems).

Учебная программа бесплатная. 🤙

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Два разработчика, ведущие разработку в одной ветке.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁48🔥52
Перевод текста с экрана в реальном времени теперь с открытым исходным кодом.

Он считывает и переводит текст из игр, видео, субтитров — вообще всего, что у тебя на экране. Мгновенно.

Раньше: сделать скриншот → скопировать → вставить → ждать обработки.
Теперь: просто работает в фоне. Я читаю японские питч-деки в реальном времени.

Ноль затрат на API. Всё работает локально. Open source. 😆

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🤯2👀2🤣1
Свойства и методы

Если вы хотите узнать свойства и методы объекта или модуля, используйте функцию dir(). Ниже мы проверяем свойства и методы строкового объекта.

my_str = 'I love Python'
print(dir(my_str))


['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
'__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha',
'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join',
'lower', 'lstrip', 'replace', 'rfind', 'rstrip', 'split',
'startswith', 'strip', 'upper']


Вы также можете использовать функцию dir(), чтобы посмотреть свойства и методы модулей. Например, если вы хотите узнать свойства, методы, атрибуты, классы и функции, доступные в модуле collections, можно использовать следующий код:

import collections
print(dir(collections))


['ChainMap', 'Counter', 'OrderedDict', 'UserDict', 'UserList',
'UserString', '__all__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__',
'__spec__', '_chain', '_collections_abc', '_count_elements',
'_eq', '_iskeyword', '_itemgetter', '_proxy', '_recursive_repr',
'_repeat', '_starmap', '_sys', '_tuplegetter', 'abc',
'defaultdict', 'deque', 'namedtuple']


Один из эффективных способов использования функции dir() — проверить, доступен ли конкретный атрибут у объекта. Например, с помощью этой функции можно проверить, есть ли у списка атрибут __len__.

my_list = [1, 2, 3, 4]
print('__len__' in dir(my_list))


True


Этот код возвращает True, потому что __len__ является одним из атрибутов объекта списка.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
21
Языки программирования и их создатели по возрасту 😎

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍17🔥3😁1
Как проверить, является ли строка печатаемой или нет в Python 🤯

>>> "123".isprintable()
True

>>> "abc".isprintable()
True

>>> "\t\n".isprintable()
False


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍6
Прогноз не сбывается 🤔🤔🤔

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
35😁7
Как превратить годы обучения в IT в реальный опыт и деньги

Самое странное сейчас это пытаться вкатиться в IT по классике, когда опытные программисты давно кодят с нейронками даже в больших проектах.

Поэтому в 2026 выигрывает тот, кто быстро делает рабочие решения без долгих лет обучения и максимально сокращает путь с нуля до первого реального проекта в IT.

Андрей Ивашев запускает бесплатный 3-дневный интенсив:

«Первые деньги на вайбкодинге»

📅 7-9 апреля в 19:00 МСК

Для тех хочет начать программировать с нейронками и заработать на этом первые деньги даже без опыта и образования.

Программа 🔥

7 апреля

почему сегодня вход в IT стал сложнее и почему вайбкодинг меняет правила игры

8 апреля

3 способа заработать на вайбкодинге в 2026 и где брать первого клиента, чтобы сделать проект за реальные деньги

9 апреля

На практике соберём AI-ассистента, который станет твоим первым IT-проектом.

🎁 Бонус за регистрацию:

«Библиотека промптов для заработка на вайбкодинге», которые помогут упаковать портфолио и общаться с клиентами так, чтобы покупали

50 бесплатных нейросетей, чтобы кодить без остановки + серкетные бонусы

Бесплатных мест для наших подписчиков всего 100.

Зарегистрироваться бесплатно
Зарегистрироваться бесплатно
Зарегистрироваться бесплатно


Тыкни на 🔥, если идёшь.
🤣12🔥43
Создай Large Language Model с нуля

Этот репозиторий содержит примеры кода для разработки, предобучения (pretraining) и дообучения (finetuning) LLM с нуля.

Это официальный кодовый репозиторий для книги *Build a Large Language Model (From Scratch)*.

Для каждой главы включены примеры в формате ноутбуков:

Глава 1: Понимание Large Language Models
Глава 2: Работа с текстовыми данными
Глава 3: Реализация механизмов attention
Глава 4: Реализация GPT-модели с нуля
Глава 5: Предобучение на неразмеченных данных
Глава 6: Дообучение для задачи классификации текста
Глава 7: Дообучение для следования инструкциям

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103