Пока я был в отпуске и путешествовал, вышел перевод документации Python на русский. Звучит круто, но на самом деле полностью переведены только core-разделы Tutorial, Built-in Functions and Dealing with Bugs, заметная часть документации все еще на английском. Посмотреть на прогресс перевода (сейчас 69%) и присоединиться к проекту можно здесь https://explore.transifex.com/python-doc/python-newest/
программисты же читаю и пишут запросы на английском? не?
вроде агенты и прочие LLM давно достаточно неплохо переводят, у нас уже большой "корпус" параллельных текстов. Особенно технических, но спасибо интересно )
Казалось бы, что может быть проще, чем разбить текст на строки? Может быть, кто-то еще помнит про \n, \r и \r\n, и в старые времена надо было знать или угадывать, что используется в файле в зависимости от системы. Мы привыкли, что в python обычно все просто - splitlines()`/`split('\n') и готово, дальше под капотом работает магия. На самом деле все, конечно, гораздо сложнее 🙂 Джеймс Беннет написал отличный разбор, как все работает сейчас, почему и откуда это все взялось.
Началось все с ASCII и телетайпов: LF (`0x0A`) двигал бумагу вниз, CR (`0x0D`) возвращал каретку. Два символа нужны, потому что механике требуется время, чтобы каретка успела доехать. Потом терминалы стали виртуальными, необходимость отпала, и все разбежались кто куда: CP/M → DOS → Windows оставили CR LF, Multics → Unix взяли только LF, Apple и Commodore - только CR. В питон еще в версии 2.3 завезли PEP 278 - universal newlines.
Но так-то в ASCII есть еще FF (form feed, `0x0C`) и VT (vertical tab, `0x0B`) - они как бы не "новая строка", но по факту переводят вывод на другую строку. Плюс NEL (`0x85`), который завели для совместимости с IBM-овской кодировкой EBCDIC, где был свой символ для перевода строки.
Дальше Юникод добавил U+2028 LINE SEPARATOR и U+2029 PARAGRAPH SEPARATOR, потому что обычный newline стал двусмысленным: текстовые редакторы с автопереносом начали использовать его как разрыв абзаца, а не строки.
Самое неожиданное - последние три: U+001C, U+001D, U+001E, они же ASCII-шные FILE, GROUP и RECORD SEPARATOR, которыми когда-то разделяли записи в данных. К разрыву строк они отношения не имеют, а попали в список через алгоритм для текста со смешанным направлением письма (слева направо и справа налево). Если, например, в тексте на арабском вставка цитаты на английском, направление переключается спецсимволом, и действует он до конца абзаца. А у этих трех разделителей в свойствах как раз прописано "конец абзаца" - вот они и оказались в одном списке с настоящими переводами строк.
Сейчас это
В эту пятницу в 14:00 (по мск) обсудим новости августа в прямом эфире Moscow Python Podcast 🎙
Вместе Гришей Петровым разберём самые интересные новости Python последних недель:
🟤PEP 805 — Safe Parallel Python - альтернатива NoGil или дополнение к нему?
🟤PEP 841: новый синтаксис frozen для создания неизменяемых коллекций — frozenset и frozendict. PEP активно обсуждается, а среди его авторов — Никита Соболев;
🟤Django Developers Survey 2026: посмотрим, что нового можно узнать о сообществе и разработчиках Django;
🟤Django переходит на ежегодный цикл релизов: Django 6.2 LTS станет последним релизом со старой нумерацией, а в январе 2028 года нас ждёт Django 2028. Заодно обсудим новую модель поддержки версий;
🟤Документация Python теперь доступна на русском: перевод уже готов на 69%, а ключевые разделы документации переведены полностью;
🟤И пара других новостей.
📍 Когда и во сколько: 4 сентября в 14:00 по Москве.
➡️ Подключайтесь к эфиру или смотрите запись на YouTube, VK или Rutube.
В документации Python появилась отдельная страница со сложностью операций над встроенными типами. Списки, словари, множества, строки и прочее — с пояснениями, почему именно такая сложность и какие есть нюансы.
Отдельно любопытно почитать примечания. Например, O(1) у добавления в список — амортизированная оценка: иногда приходится перевыделять память, и конкретная операция будет O(n). А у словарей поиск в среднем O(1), но при неудачных коллизиях может стать O(n). В общем, полезная шпаргалка, чтобы освежить в голове, сколько стоят привычные операции.
Ссылка https://docs.python.org/3.16/library/time-complexity.html
Друзья, у нас важное объявление!
Некоторые из вас помнят наши курсы Learn Python - когда-то они запускались в оффлайне и были отличной точкой входа для новичков.
В последнее время спрос на курсы по программированию по понятным причинам упал, однако необходимость "прокачиваться" тем, кто уже в профессии, осталась. Помимо этого, как никогда актуален "живой" формат - именно сегодня крайне важна энергетика, которую получаешь от общения с единомышленниками в оффлайне.
Именно эта идея лежала в основе Moscow Python, когда мы запускали наши митапы в 2012-м году, однако мы решили пойти дальше и сегодня объявляем о запуске Moscow Python Pro - это и серия мероприятий, и своего рода "сообщество внутри сообщества".
Главными лицами Moscow Python Pro являются его резиденты. Это люди, с которыми вы хорошо знакомы по митапам и конференциям. Именно в рамках наших мероприятий вы получаете возможность близкого общения с этими людьми и получения от них ответов на ваши вопросы в неформальной обстановке.
Старт серии мероприятий Moscow Python Pro знаменуют 2 круглых стола на тему "Навыки сильного разработчика в эпоху ИИ".
Круглый стол 06.10, участники:
- Александр Ковалев (Ozon Tech, Руководитель группы разработки)
- Александр Полищук (МТС Веб Сервисы, Руководитель разработки Дата платформы)
- Сурен Хоренян (Яндекс, Старший разработчик)
- Михаил Васильев (Райффайзенбанк, Старший инженер по машинному обучению)
Круглый стол 09.10, участники:
- Алексей Жиряков (Сбер, Исполнительный директор в дивизионе «Развитие генеративного ИИ»)
- Максим Богуславский (ООО «Альфа-функция», Генеральный директор)
- Денис Аникин (Райффайзенбанк, Техлид)
Ведущий обоих мероприятий: Валентин Домбровский, сооснователь Moscow Python.
Подробности о мероприятиях и "перках" для участников читайте по ссылкам выше. Да, это платно, но мы надеемся, что это позволит нам развивать сообщество дальше и придумывать для вас новые крутые идеи. Отметим также, что до конца этой недели доступна специальная ранняя
Уже завтра, в пятницу в 14:00 (по мск) обсудим новости сентября в прямом эфире Moscow Python Podcast 🎙
Вместе с Гришей Петровым разберём самые интересные новости Python последних недель:
🟤Релиз PyPy 8.0: впервые появилась поддержка Python 3.12 — пока в бете;
🟤 PEP 848: новый сборщик мусора;
🟤 PEP 823 и PEP 824: операторы для работы с None;
🟤 Стратегический план PSF на 2026 год, обсудим, на чём фонд собирается сосредоточить ресурсы;
🟤 Python Workers от Cloudflare готовы для продакшена.
📍 Когда и во сколько: в эту пятницу в 14:00 по Москве.
➡️ Подключайтесь к эфиру или смотрите запись на YouTube или Rutube.