20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Книга «Искусство чистого кода. Как избавиться от сложности и упростить жизнь»
Большинство разработчиков ПО тратят тысячи часов на создание излишне сложного кода. Девять основных принципов Кристиана Майера «Искусство чистого кода» научат вас писать понятный и удобный в сопровождении код без ущерба для функциональности. Главный принцип — простота: сокращайте, упрощайте и перенаправляйте освободившуюся энергию на самые важные задачи, чтобы сэкономить бесчисленное количество часов и облегчить зачастую очень утомительную задачу поддержки кода.
Профиль на labirint.ru
#лучшиепрактики
Разбираем затык подписчика: JavaScript vs. Python
Вопрос от подписчика Тимофея Иноземцева (@avto_mexanic):
«В новой компании пишут на React тот проект, где я ОЧЕНЬ хотел бы поучаствовать. Но я три года на Питоне. Стоит ли переучиваться на новый язык js?»
Поделитесь своим мнение в комментариях.
#обсуждение
Поздравляем победителей
Задачу про телефонную маску верно решили:
— @sw1ftin;
— @info_cell_towers;
— @Alex_Bur;
— @Ninnjah;
— @impreza555;
— @dimwap.
Кратчайший верный способ выглядит так:>>> def format_phone_number(numbers: list[int]) -> str:... template = "+7 ({}{}{}) {}{}{}-{}{}-{}{}"... return template.format(*numbers)
Присоединяйтесь к решению задач (их публикуем по понедельникам), это хороший способ подготовиться к собеседованиям.
#задача
Задача о дубликатах
Напишите функцию, которая будет возвращать количество букв / цифр, которые встречаются в строке более одного раза. Регистр на подсчёт не влияет. "abcde" -> 0 # ни один символ больше раза не встречается"aabbcde" -> 2 # 'a' и 'b'"aabBcde" -> 2 # 'a' дважды, 'b' дважды ('b' и 'B')"indivisibility" -> 1 # 'i' шесть раз"Indivisibilities" -> 2 # 'i' семь раз и 's' дважды"aA11" -> 2 # 'a' и '1'"ABBA" -> 2 # 'A' и 'B' по два раза
#задача
ruff: убийца autoflake и pylint
Чрезвычайно быстрый линтер и форматировщик Python, написанный на Rust. Он обеспечивает производительность в 10–100 раз выше при наличии более чем 700 встроенных правил и повторной реализации популярных плагинов.
Гайд по прикрутке ruff с KDNuggets
Профиль на PyPi
#библиотека
Пятничный Win Share
Питонисты, как ваши дела перед уикендом?
Напоминаем: вы можете поделиться не только новостями, но и затыками. Сообщество Zen of Python постарается помочь. Самую интересную проблему мы разберём в отдельном посте.
#winshare
О книге «Сверхбыстрый Python»
Быстрый код на чистом Python, оптимизированные библиотеки и аппаратное обеспечение, позволяющее использовать все преимущества параллельной обработки данных, — это цена входа в мир машинного обучения и анализа больших данных. Книга Тиаго Антао предлагает уникальные техники ускорения с акцентом на большие данные и станет вашим надёжным проводником в мир оптимизации. Вы узнаете, как ускорить работу со встроенными структурами данных за счёт параллельных вычислений, а также научитесь сокращать объем занимаемой данными памяти без ущерба для точности.
Профиль на labirint.ru
#книга
«Изучаем Python« Марка Лутца в форме видео
Этот учебник часто рекомендуют для новичков в Python. В 20-тичасовом плейлисте YouTube разбирают его главу за главой, с разбором сложных мест и добавлением актуальной информации из свежих версий языка. Будет полезно как новичкам, так и опытным разработчикам, желающим освежить свои знания.
#книга
Pytest: исчерпывающий видеогайд
Семичасовой (!) плейлист видеоуроков на YouTube, с помощью которого вы узнаете:
— в чем отличие теста от автотеста;
— что такое валидация и причём здесь pydantic;
— где используются фикстуры;
— что такое Allure Report и проч.
#библиотека
PyMunk для двумерной графики
Простая в использовании библиотека на базе Chipmunk, которую можно использовать всякий раз, когда вам нужна 2D-физика твёрдого тела на Python.
Проект на PyPi
#библиотека
PyGame: гайд для новичков
Ребята с pytonist.ru познакомят вас в своей статье с этой игровой библиотекой и покажут, как с её помощью создавать простые игры.
#библиотека
Анимированный matplotlib
В англоязычном гайде codespeedy.com вы познакомитесь с модулем FuncAnimation и научитесь оживлять привычные точечные, линейные, столбчатые графики:from matplotlib.animation import FuncAnimation
#библиотека #лучшиепрактики
Игра про Python, которую вы возненавидите
Энтузиаст создал игру на Python, в которой освещены самые неясные аспекты языка. Она сделана по аналогии c «The Password Game», где с каждой попыткой создать верный пароль к нему предъявляются всё новые и новые требования. Так и здесь автор решает проверить, как глубоко вы сможете написать выражение на Python со всё большим количеством ограничивающих правил.
Игра: https://oskaerik.github.io/theevalgame/
Обсуждение на Reddit (если застряли на каком-то этапе): https://oskaerik.github.io/theevalgame/
#инструменты #python
Вопрос от подписчика: аналог repl.it
Я учитель математики в средней школе и занимаюсь программированием на Python. В качестве интерпретатора использую repl.it, но этот сервис приостанавливает свою образовательную программу. Так что теперь я в поисках альтернативы. Среди её полезных особенностей :
— возможность создавать несколько разных уроков, в которых учащиеся могли создавать свои собственные подгруппы;
— шаблоны с моими инструкциями, от которых можно «ветвиться»;
— запуск в браузере.
Знаете ли вы подобные онлайн-интерпретаторы или другие способы преподавания Python в классе?
#обсуждение
Трехстраничная шпаргалка, с помощью которой вы узнаете:
— как называются части URL в контексте запроса;
— зачем нужны те или иные заголовки запросов (например, Accept-Charset / User-Agent);
— чем отличается код 300 от 500
#api
Тимофей Хирьянов и основы Python
Один из самых добротных IT-преподавателей в Рунете Тимофей Хирьянов в 17-часовом плейлисте буквально создаёт видеоэнциклопедию.
Этот видеокурс прямиком из МФТИ уже снискал свою аудиторию, так что для каждой записи благодарные даже расписали подробные тайм-коды.
#факты
Первый раунд баттла языков программирования 2023
Первые двойки языков программирования готовы столкнуться в битве за звание лучшего в 2022 году: Swift против Dart, R против Python.
Переходите по ссылке и голосуйте за любимый ЯП.
#баттл
Стартует батл языков программирования 2023
Подходит к концу 2023 год, а это значит, пора подвести его итоги и запустить традиционный батл за звание лучшего языка программирования на Tproger.
Мы уже проводили такое голосование в 2020, 2021 и 2022 годах: первые два раза в голосовании победил Python, а в прошлом году — C#.
Накидывайте голоса нашему любимому Python и поднимайте его в топ, как он того и заслуживает!
#баттл
Пакет Python для анимации статистических данных
Недавно наткнулись на интересный проект и хоть понятно, что анимация линейных графиков обычно не имеет никакого смысла, но возможно пригодится кому на работе.
GitHub | Документация | pypi
#project
Книга «Основы искусственного интеллекта в примерах на Python«
В работе Анатолия Постолита описаны:
— основные понятия и определения искусственного интеллекта;
— основы Python;
— инструментарий для разработки AI-приложений;
— вопросы реализации нейросетей, в том числе многослойных
— специализированные библиотеки PyBrain, Scikit-learn, Keras, TensorFlow, ImageAI и OpenCV.
Профиль на Ozon
#книга
tiny-api-client для своих эндпоинтов
Короче способа создать API, пожалуй, трудно найти:from tiny_api_client import api_client, get, post, delete@api_client('https://example.org/api/public/v{version}')class MyAPIClient: @get('/users/{user_id}') def find_user(self, response): return response @post('/notes') def create_note(self, response): return response>>> client = MyClient()>>> client.find_user(user_id='PeterParker'){'name': 'Peter', 'surname': 'Parker', ...}
Проект на GitHub
#API
pytunes для стриминга музыки на кастомных устройствах
Библиотека превращает устройства Raspberry PI в полноценные музыкальная электростанция с помощью balenaOS и balenaCloud.
Проект на GitHub
#библиотека
Поздравляем победителей
Задачу про змейку верно решили:
— @sw1ftin;
— @Alex_Bur;
— @Trizalio;
— @lastway90.
Кратчайший верный способ выглядит так:def snail(array): result = [] while array: result += array.pop(0) array = list(zip(*array))[::-1] return result
Присоединяйтесь к решению задач (их публикуем по понедельникам), это хороший способ подготовиться к собеседованиям.
#задача
Задача про телефон
Напишите функцию, которая принимает массив из 10 целых чисел (от 0 до 9) и возвращает строку в виде номера телефона:formatPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "+7 (123) 456-78-90"\
#задача
Лучшие ресурсы, чтобы выучить Git
Подборка от uproger.ru, в которой можно выбрать из следующий гитовых тем:
— Введение;
— Про потоки;
— Ветвления и проч.
#git
Пятничный Win Share
Как у вас дела под конец недели, коллеги-питонисты?
Напоминаем: вы можете поделиться не только новостями, но и затыками. Сообщество Zen of Python постарается помочь. Самую интересную проблему мы разберём в отдельном посте.
#winshare
Логические задачи для программистов, которые бесят своей простотой
Собрали в статье каверзные логические задачи с собеседований для SDE. Они кажутся сложными, но на деле довольно простые. Испытайте себя!
#задача
Преимущества Python – ключ к успешной карьере в IT
Рассказали в статье, какими преимуществами обладает этот ЯП для разработчиков разного уровня подготовки от “Trainee” до “Senior”.
#факты
Сравниваем LLM-модели, чтобы потом внедрить без мороки
Сравнили в статье GPT4, LLaMA, Yandex GPT2, GigaChat c позиции разработчика-внедренца: стоимость, число параметров, вероятность цена и проч.
#факты
Поздравляем верно решивших задачу про пирамиду
— @valeriy131100;
— @Furygale;
— @GeorKu;
— @Shoker_84;
— @TO;
— @impreza555;
— @Alex_Bur.
Присоединяйтесь к раскачке мозгов, это пригодится на собеседованиях.