Самые популярные вопросы на собеседовании: «В чем разница между is и ==?»
Это вопрос с подвохом, и начинающие разработчики часто не видят разницы. И… привет, баги! Так что давайте разбираться, в чём же разница.
Если просто, то is
проверяет идентичность, а ==
проверяет равенство. Чтобы лучше понять, создадим 2 списка, а переменной b
присвоим значение списка a
:a = [1,2,3]
b = a
c = [1,2,3]
Если проверим равенство, то все объекты будут равны:print(a == b) #=> True
print(a == c) #=> True
А вот если мы проверим их идентичность, то получается следующее:print(a is b) #=> True
print(a is c) #=> False
Несмотря на одинаковое содержимое, сами списки представлены разными объектами в памяти, поэтому оператор is
для одинаковых списков возвращает False
. Проверить очень просто — у объектов будут разные идентификаторы:print(id(a)) #=> 4369567560
print(id(b)) #=> 4369567560
print(id(c)) #=> 4369567624
Это всё, что нужно знать про is
и ==
на базовом уровне. Но есть несколько лайфхаков и нюансов, которые помогут использовать эти операторы на полную катушку. О них расскажу чуть позже.
#собеседование
Как устроена RecTools — OpenSource–библиотека для рекомендательных систем
В этой статье мы рассмотрим открытую библиотеку RecTools для рекомендательных систем, позволяющую разработчикам и исследователям создавать эффективные алгоритмы машинного обучения.
Рассказываем о достоинствах и недостатках RecTools и как она может быть использована в ваших проектах: https://tprg.ru/CgJX
#ml
Объяснение:Списки
— изменяемый тип данных. Поэтому под два разных списка создаётся отдельный объект. Даже если их значения одинаковые
Особенности семантики exactly-once при разработке для Kafka на Python
Exactly-once — это подход, при котором сообщение доставляется получателю строго один раз, без дублирования и потери данных.
В статье рассказали про особенности семантики exactly-once на примере разработки проекта на Kafka и Python для сортировки данных: https://tproger.ru/articles/osobennosti-semantiki-exactly-once-pri-razrabotke-dlja-kafka-na-python/
Стек технологий для Python
Просто небольшая заметка, где Senior Python Developer советует инструменты и технологии, которые повсеместно применяют разработчики на Python:
https://tproger.ru/articles/stek-tehnologij-dlja-python-sovetuet-jespert/
#начинающим #инструменты
Что скажет ChatGPT: Почему Python такой популярный?
Кто-то с помощью ChatGPT пишет дипломы, кто-то — код, а мы попросили ChatGPT написать целую статью про то, как Python набирал популярность с 1990-х годов и почему стал популярен в Data Sceince, Machine Learning, веб-разработке и разработке игр.
Пока человеческий админ пошёл собирать вещи, посмотрите, как получается у ChatGPT писать целые статьи: https://tproger.ru/articles/pochemu-python-takoj-populjarnyj/
#chatgpt #ml
5 лучших ресурсов для изучения Python
Помимо этого лампового канала, есть куча других интересных источников, которые помогают прокачаться в Python. И хотя тут уже собираются лучшие практики и самые интересные материалы, этого может быть недостаточно.
Админ всё понимает, поэтому делится лучшими ресурсами, которые помогут прокачаться в Python. Некоторые из них уже мелькали здесь, другие — объективно считаются лучшими ресурсами для изучения Python.
Так что сохраняйте себе и учитесь на здоровье:
1. Code Academy
Code Academy — это бесплатный учебный ресурс для изучения программирования. Там есть уроки по многим языкам, не только по Python. Удобно, что можно писать прямо в браузере и сразу смотреть результаты. Лучше всего подходит для начинающих и программистов среднего уровня.
2. TutorialsPoint
TutorialsPoint похож на Code Academy. Но база знаний TutorialsPoint больше — там есть и довольно сложные темы, такие как доступ к базам данных, CGI, игры, многопоточность, сети, дизайн и т. п.
3. Codementor.io
Codementor — платформа больше для разработчиков от среднего уровня до экспертов. А каждый пост на этом сайте — отдельное руководство по какой-либо теме, например, об интеграции Node.js с Python, использовании декораторов и т. п.
4. PythonChallenge
Сайт точно вам понравится, если вы не ищете легких путей и предпочитаете учиться, преодолевая трудности. Это не самый современный и красивый сайт. Но там вы найдёте отличные задачи и уроки, которые помогут вам в изучении Python.
5. Python Class от Google
Это — учебник по Python от Google. Материал в нём предназначен для опытных программистов. Здесь в основном теория, но написанная простым и доступным английским. Как вспомогательный материал для изучения Python точно подойдёт.
#подборка
Самые популярные вопросы на собеседовании: «В чем разница между списком и кортежем?»
С этого дня решил попробовать новую рубрику — вопросы с собеседований. В ней буду рассказывать о популярных вопросах и ответах на них. Такая минимальная посильная нагрузка, которая со временем поможет увереннее чувствовать себя в самый важный момент перед будущим тимлидом :)
И начнём с одного из самых простых, но самых частых вопросов с собеседований по Python/Data science. Его важно знать даже просто для себя.
Вот несколько отличительных черт кортежей и списков:
— Список можно изменить после создания. Кортеж — нельзя.
— Список упорядочен. Он представляет собой упорядоченные последовательности объектов часто одного и того же типа. Например, все имена пользователей упорядочены по дате создания: ["Seth", "Ema", "Eli"]
.
— У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, "Ema", "2020–04–16") # id, name, created_at
.
#собеседование
Задача коммивояжёра — точное решение через метод целочисленного линейного программирования
Если коротко, задача комивояжёра — это классический пул задач на поиск кратчайшего маршрута среди нескольких городов. Или маршрута по городу. В общем — это задачи о том, как принимать решения в ситуациях со множеством переменных.
Задачу коммивояжёра можно решить несколькими способами. Например, простым перебором. Но чем больше будет городов, тем медленнее будет расчёт. Уже на 10 городах мы получим миллионы выполнений цикла. А на 13 городах таких — уже несколько миллиардов, и компьютер может их считать неделю и даже больше.
Чуть более оптимальное решение — метод динамического программирования и метод ветвей и границ. Результат получается неплохой, но всё равно он слабоват.
Вот интересная статья, которая показывает, что точное решение этой задачи можно получить гораздо более оптимальным способом. Всё с понятными объяснениями и кодом на Python: https://habr.com/ru/post/711708/
#задачи
Дайджест Python: чем плох Django и как создать бота на GPT-3
Собрали дайджест из лучших материалов, гайдов и новостей по Python.
Узнайте, с чем сталкиваются джуниоры на собеседованиях, как создать чат-бота на основе GPT-3 и собственный SEO-анализатор: https://tproger.ru/articles/dajdzhest-python-chem-ploh-django-i-kak-sozdat-bota-na-gpt-3/
#дайджест
Самые полезные навыки для Python-разработчика в 2023 году
В статье собрано 7 советов, которые помогут вам понять, в каких случаях лучше использовать библиотеки NumPy и NumExpr, как улучшить производительность функции pandas apply() или разобраться в плюсах и минусах Numba. И в целом улучшить свои навыки программирования на Python:
https://towardsdatascience.com/speed-up-your-python-skills-in-2023-e680f4c56f37
#советы
Лучшие open-source инструменты для Python проектов
Open-source проекты, сторонние инструменты и библиотеки — это то, за что мы действительно любим Python.
И вот полезная статья, в которой собраны самые полезные, валидированные сообществом и проверенные временем инструменты, конфигурации которых можно встретить в популярных проектах с открытым исходным кодом: https://habr.com/ru/post/708916/
#библиотека
Хотите вырасти в разработке на Python? Без новых знаний и навыков не обойтись
Начните прокачивать скиллы с открытого урока «Схемы аутентификации», который пройдет 1 февраля в 20:00 мск.
А продолжить сможете на практическом онлайн-курсе «Python Developer. Professional» в OTUS. Во время занятия с Станиславом Ступниковым, руководителем разработки в VK, на примере FastAPI приложения вы обсудите различные способы аутентификации пользователей: basic, token (с jwt и без), OAuth2.
Пройдите вступительное тестирование и присоединяйтесь https://otus.pw/S6Ez/
Реклама ООО «Отус Онлайн-Образование» LjN8Juat7
8 паттернов проектирования для ML-разработчиков
Паттерны проектирования помогают быстрее и эффективнее создавать код, а не «изобретать велосипеды». Если разработчик может грамотно формализовать проблему с помощью ООП и выбрать подходящий паттерн для её решения, во-первых, это очень круто и профессионально, а во-вторых, это может серьезно ускорить сроки разработки.
В статье — 8 паттернов проектирования с примерами кода на Python: https://proglib.io/p/8-patternov-proektirovaniya-kotorye-dolzhen-znat-kazhdyy-ml-razrabotchik-2022-10-27
Изначально паттерны рассматриваются в контексте ML, но будут полезны и другим Python-разработчикам.
#ml #паттерны
Срочно нужны талантливые разработчики!
18-19 февраля VK проведёт Weekend Offer для мобильных разработчиков, ML-разработчиков на Python и Java-разработчиков, которые хотят развиваться в направлении ML. Если Swift и Kotlin для вас не пустой звук, либо умеете применять Java или Python для машинного обучения, то вы знаете, как провести следующие выходные.
Участникам, получившим заслуженные офферы, предстоит заняться развитием сервисом компании в командах Дзена, Почты Mail.ru, Антиспама и Маруси.
Оставить заявку можно до 16 февраля включительно, так что не теряйте времени: https://tprg.ru/vMQo
Реклама ООО "ВКонтакте"
Тестируем на Python: unittest и pytest
Ничего нельзя сделать без ошибок, и с программами — то же самое. Если вы написали рабочий код, как узнать, что будет при реальном использовании? Поведёт ли себя программа так, как от неё ожидают, или что-нибудь выкинет?
Именно поэтому при создании программ 75% времени уходит вовсе не на программирование, а как раз-таки на тесты. И если вы не хотите тратить время на тесты в самом начале, вы всё равно потратите его потом, только в большем количестве.
И вот отличная статья, в которой рассказывают, как правильно проводить тестирование приложений в Python, используя unittest и pytest:
https://tproger.ru/articles/testiruem-na-python-unittest-i-pytest-instrukcija-dlja-nachinajushhih/
#qa
Подборка актуальных вакансий для Python-разработчиков:
— Python-разработчик
Где: Москва
Опыт: от 3 лет
— Специалист информационной безопасности ИТ-инфраструктуры
Где: Москва
Опыт: от 1 года
— Senior Python-разработчик
Где: Москва
Опыт: от 3 лет
— Middle DevOps Engineer (Big Data)
Где: Москва, можно удалённо
Опыт: от 3 лет
— Data Engineer (Big Data)
Где: Москва, можно удалённо
Опыт: от 1 года
#вакансии #работа
Внезапно, но сервис, в котором можно выучить «всё»
Просто вбиваете запрос и сервис выводит небольшой роадмап. Админ попробовал «питонические» запросы а-ля Python, Pandas и др. И это как минимум забавно. Но что интересно, там есть информация практически по любому запросу — пусть местами скудно, но всё равно есть.
В общем, попробуйте: https://learn-anything.xyz/
#инструменты
Самые популярные вопросы на собеседовании: «Как выполняется обработка исключений в Python?»
Это база, но всё равно новички часто плавают в исключениях или используют их не в полной мере. Давайте разбираться, как делать это правильно.
Для обработки исключений Python предоставляет конструкцию из трех слов: try
, except
и finally
.
Синтаксис выглядит примерно так:try:
# пробуем это
except:
# если try не сработал, пробуем это
finally:
# в любом случае делаем это
Например, код:try:
val = 1 + 'A'
except:
val = 10
finally:
print('complete')
print(val)
Выдаст:#=> complete
#=> 10
Здесь блок try
терпит неудачу, ведь мы не можем складывать целые числа со строками. Блок except
устанавливает val = 10
, а затем блок finally
выводит complete
.
#собеседование
Разбираем Теорию Игр с Python-библиотеками nashpy и axelrod
Наверняка вы хоть когда-нибудь играли в «Камень, ножницы, бумага»? Может показаться, что победа в этой игре случайна. Но на самом деле игроки часто пытаются предсказать, какой будет стратегия противник, и выбрать выигрышный ход.
Что самое интересное, эти стратегии могут быть смоделированы с помощью теории игр. А сама теория применима, не только к играм, но и к политическим сценариям, ситуациям в бизнесе и даже экономике.
И вот одна из немногих интересных статей на эту тему: https://habr.com/ru/post/713120/
Как писать чистый и читаемый код на Python: 3 самых важных принципа
Даже опытные программисты с трудом пишут чистый код. И зачастую это похоже на бесконечную гонку за недостижимым идеалом. Но существует несколько принципов, методов и лучших практик, которые пусть и не сделают ваш код на Python идеальным, но сделают его чище, понятнее и удобнее.
Подробнее: https://proglib.io/p/3-principa-napisaniya-chistogo-koda-na-python-2022-12-26
#советы
Свежие PEP, SQLAlchemy 2.0 и топ библиотек 2022 — обсуждают в прямом эфире
Сегодня в 14:00 по Москве ребята из Moscow Python Podcast проведут прямую трансляцию и обсудят:
— новый асинхронный фреймворк с Rust рантаймом;
— релиз SQLAlchemy 2.0;
— свежие PEP, особенно, сборку Python без GIL;
— топ-10 Python библиотек 2022;
— и другие новости.
Гость: Илья Лебедев (евангелист MoscowPython, сооснователь Learn Python)
В ходе трансляции Moscow Python Podcast ребята ответят на вопросы и комментарии в прямом эфире. Присоединяйтесь по ссылке!
Реклама ИНН 774335272286 LjN8KQWtF
Обновлённая дорожная карта по Python на 2023 год: теперь интерактивная
Новичкам она будет полезна для уверенного старта, а опытным разработчикам подскажет, куда развиваться дальше.
Это не новость, ребята обновляют роадмап каждый год. Да и вообще, это классный проект, в котором есть куча других дорожных карт, не только Python. Но только недавно появилась возможность понажимать кнопочки и почитать подробнее. И этого не хватало давно.
Так что если ещё не сохранили себе, рекомендуем: https://roadmap.sh/python
#шпаргалки
Внезапно очень интересный тред на Reddit, в котором Python-разработчики рассказывают, над чем они работали на прошлой неделе
Как минимум, это очень мотивирует — видишь, как разработчики с абсолютно разным опытом что-то делают, спотыкаются и ошибаются. Даже возникает желание что-нибудь эдакое написать, чтобы скорее поделиться с сообществом. Как максимум, можно найти идею для пет-проекта, задать вопрос или, наоборот, помочь кому-то:
https://www.reddit.com/r/Python/comments/10ntjak/sunday_daily_thread_whats_everyone_working_on/
Вопросы с собеседований: Как сортировать словарь по значению?
Загвоздка в том, что словари в Python не имеют специальных методов, позволяющих сортировать элементы по значениям.
Поэтому сортировку словаря по значению хочется сделать при помощи других структур данных. Например, первое, что приходит на ум — списки. Но этом медленное и неэффективное решение. И если вы ответите так на собеседовании, считайте, что лучше было промолчать.
Вот небольшая заметка, в которой вы найдёте несколько оптимальных способов отсортировать словарь по значению в Python:
https://pythonist.ru/sortirovka-slovarya-po-znacheniyu-2/
Дорожная карта: изучение Python с нуля
Вообще, изучение основ Python почти ничем не отличается от любого другого языка. Но дальше в ход идёт разделение на сферы, синхронное/асинхронное программирование, тестирование и инструменты, часто индивидуальные для каждого языка.
Вот такие вот роадмапы помогают окончательно не запутаться и структурировать обучение. На картинке общий план развития. А в статье — подробности с пояснениями: https://tproger.ru/articles/python-roadmap/
#шпаргалки
Как генерировать музыку из изображений с помощью Python
Гайд, из которого вы узнаете, как можно делать музыку из изображений и экспортировать её в wav-файлы для последующей обработки.
Конечно, это не тот гайд, где с помощью нейросетей и пары строчек кода убивают всю музыкальную индустрию — в нём всё намного проще. Но зато все шаги подробно расписаны, а код есть на гитхабе.
Для забавного пет-проекта на пару вечеров практики вполне подойдёт: https://habr.com/ru/company/ruvds/blog/708890/
Когда возвращаешься к коду спустя месяц и пытаешься вспомнить что каждая функция делает:
Читать полностью…