GROK IT! Ответ на задачу про оператор распаковки и функцию zip 🔔
Ответ ищите в карточках 😉
Ссылка на чат 👉🏻 https://news.1rj.ru/str/itresume\_chat, где еще больше интересных задач по программированию, Data Science и анализу данных!
О том, как еще можно использовать оператор читайте в нашей статье. Про оператор zip у нас тоже есть статья, где вы найдете 7 неочевидных способов использования оператора 😉
#grokit #grokit_python
Ответ ищите в карточках 😉
Ссылка на чат 👉🏻 https://news.1rj.ru/str/itresume\_chat, где еще больше интересных задач по программированию, Data Science и анализу данных!
О том, как еще можно использовать оператор читайте в нашей статье. Про оператор zip у нас тоже есть статья, где вы найдете 7 неочевидных способов использования оператора 😉
#grokit #grokit_python
Друзья, расскажите, как Вы организовываете свой код? 👨💻
Кто-то разбивает на модули, кто-то использует классы, но хранит все в одном файле, кто-то вообще работает только с функциями. Ну а есть и такие, кто напрочь игнорирует принцип DRY (Dont’t repeat yourself) и по несколько раз повторяет один и тот же код, вместо того, чтобы использовать хотя бы функции.
А как делаете Вы? 😏
Кто-то разбивает на модули, кто-то использует классы, но хранит все в одном файле, кто-то вообще работает только с функциями. Ну а есть и такие, кто напрочь игнорирует принцип DRY (Dont’t repeat yourself) и по несколько раз повторяет один и тот же код, вместо того, чтобы использовать хотя бы функции.
А как делаете Вы? 😏
Как Вы организовываете свой код?
Anonymous Poll
58%
Работаю с функциями
23%
Разбиваю на классы
38%
Дроблю на модули
11%
Разбиваю, но все держу в одном файле
18%
Вообще пишу сплошным полотном
⚙️ Зачем нужны конфиги в Python и как работать с ними правильно?
Конфиги - необходимый атрибут в любом проекте, хотя некоторые программисты недооценивают их важность. С помощью конфигов удобно хранить данные доступов, прописывать пути до папок/логов и т.д.
Ок, то что конфиги нужны - вопросов нет. Но как с ними лучше работать? Существует большое количество мнений по этому поводу, но мы в своих проектах привыкли пользоваться .ini-файлами и библиотекой configparser. Такой подход снимает кучу головной боли - один раз мы прописываем все в конфиге и на все оставшееся время вообще забываем про него.
✅ Кстати, совет: если над проектом работает сразу несколько человек, то можно добавить конфиг в gitignore, чтобы у каждого была своя локальная копия с нужными настройками. Тогда конфиг не будет перезатираться при каждом git pull.
А как у вас обстоят дела с конфигами? Используете их или по-старинке храните все прямо в коде?)
Конфиги - необходимый атрибут в любом проекте, хотя некоторые программисты недооценивают их важность. С помощью конфигов удобно хранить данные доступов, прописывать пути до папок/логов и т.д.
Ок, то что конфиги нужны - вопросов нет. Но как с ними лучше работать? Существует большое количество мнений по этому поводу, но мы в своих проектах привыкли пользоваться .ini-файлами и библиотекой configparser. Такой подход снимает кучу головной боли - один раз мы прописываем все в конфиге и на все оставшееся время вообще забываем про него.
✅ Кстати, совет: если над проектом работает сразу несколько человек, то можно добавить конфиг в gitignore, чтобы у каждого была своя локальная копия с нужными настройками. Тогда конфиг не будет перезатираться при каждом git pull.
А как у вас обстоят дела с конфигами? Используете их или по-старинке храните все прямо в коде?)
Самый спорный шаблон ООП: Singleton 🧐
Singleton (или Одиночка) - один из самых известных и, в то же время, спорных паттернов ООП. Это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Другими словами, представьте, что Вы создали объект, а через некоторое время пытаетесь создать новый экземпляр. Но Синглтон вернет Вам ранее созданный объект, а не создаст новый.
💥 Пример из жизни: Правительство страны. Одновременно не может быть несколько правительств (предполагается, что это так :) ). При этом не важно, кто сидит в Правительстве - оно все равно в единственном экземпляре.
Синглтон, например, используют:
✓ При создании подключения к БД (чтобы из разных частей программы был один доступ к БД)
✓ При открытии файла для чтения/записи
Спорность этого паттерна в том, что у него есть ряд существенных недостатков:
✘ Синглтон нарушает принцип единственной ответственности класса (Single Responsibility Principle, SRP) - такой класс не только выполняет свой функционал, но еще и контролирует количество экземпляров
✘ Зачастую Singleton применяется там, где не должен, и закрывает собой дыры плохого дизайна
✘ Одиночка очень плохо работает в многопоточных программах из-за проблем с доступом
✘ Синглтон сложен в тестировании кода
Однако, иногда все же довольно удобно использовать этот паттерн, если нужно гарантировать единственность экземпляра класса. Помимо этого, он позволяет реализовать отложенную инициализацию. Например, нет необходимости в самом начале открывать соединение с БД и постоянно держать его закрытым. Его можно открыть в нужный момент, создав объект, а потом открывать-закрывать по мере необходимости.
Singleton (или Одиночка) - один из самых известных и, в то же время, спорных паттернов ООП. Это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Другими словами, представьте, что Вы создали объект, а через некоторое время пытаетесь создать новый экземпляр. Но Синглтон вернет Вам ранее созданный объект, а не создаст новый.
💥 Пример из жизни: Правительство страны. Одновременно не может быть несколько правительств (предполагается, что это так :) ). При этом не важно, кто сидит в Правительстве - оно все равно в единственном экземпляре.
Синглтон, например, используют:
✓ При создании подключения к БД (чтобы из разных частей программы был один доступ к БД)
✓ При открытии файла для чтения/записи
Спорность этого паттерна в том, что у него есть ряд существенных недостатков:
✘ Синглтон нарушает принцип единственной ответственности класса (Single Responsibility Principle, SRP) - такой класс не только выполняет свой функционал, но еще и контролирует количество экземпляров
✘ Зачастую Singleton применяется там, где не должен, и закрывает собой дыры плохого дизайна
✘ Одиночка очень плохо работает в многопоточных программах из-за проблем с доступом
✘ Синглтон сложен в тестировании кода
Однако, иногда все же довольно удобно использовать этот паттерн, если нужно гарантировать единственность экземпляра класса. Помимо этого, он позволяет реализовать отложенную инициализацию. Например, нет необходимости в самом начале открывать соединение с БД и постоянно держать его закрытым. Его можно открыть в нужный момент, создав объект, а потом открывать-закрывать по мере необходимости.
🔥 2 способа решения задачи про поиск дубликата
Недавно мы публиковали подборку алгоритмических задач с технических собеседований. Это реальные задачи: хоть о них все и знают, но их продолжают спрашивать при трудоустройстве. А самое главное - люди продолжают на них «садиться в лужу». Хватит это терпеть! 🤓
Сегодня мы подготовили для вас 2 способа решить одно из таких заданий - задачу про поиск дубликата. Это, пожалуй, самая классическая и известная задача из всех. И, кстати говоря, довольно жизненная.
Мы разбираем самые базовые подходы и обсуждаем сложность каждого алгоритма:
→ сортировкой
→ с помощью запоминания значений
А какие способы решения этой задачки можете предложить вы?) И задание под звездочкой - какая будет сложность у вашего решения? 😏
Недавно мы публиковали подборку алгоритмических задач с технических собеседований. Это реальные задачи: хоть о них все и знают, но их продолжают спрашивать при трудоустройстве. А самое главное - люди продолжают на них «садиться в лужу». Хватит это терпеть! 🤓
Сегодня мы подготовили для вас 2 способа решить одно из таких заданий - задачу про поиск дубликата. Это, пожалуй, самая классическая и известная задача из всех. И, кстати говоря, довольно жизненная.
Мы разбираем самые базовые подходы и обсуждаем сложность каждого алгоритма:
→ сортировкой
→ с помощью запоминания значений
А какие способы решения этой задачки можете предложить вы?) И задание под звездочкой - какая будет сложность у вашего решения? 😏
🔥 Задача с реального собеседования из чата IT Resume
Вы знаете, что мы несколько раз в неделю публикуем в группе задачки по программированию и Data Science. Если Вы до сих пор не знакомы с нашей уткой - обязательно посмотрите посты с хэштегом #grokit.
Однако, не все знают, что в нашем чате мы публикуем еще больше задач и вопросов. Вот, например, такую задачку по Pandas с реального собеседования недавно решали участники чата 💥 И многие, кстати, правильно решили.
Если Вы тоже хотите получать еще больше задачек - вступайте в наш чат 👉🏻 https://news.1rj.ru/str/itresume_chat
Ну и, естественно, пишите свои варианты решения задачи в комментариях под этим постом, мы обязательно сделаем ревью каждого ответа 🙃
Всем большой GROK IT! 🦆
#grokit #grokit_python #grokit_pandas
Вы знаете, что мы несколько раз в неделю публикуем в группе задачки по программированию и Data Science. Если Вы до сих пор не знакомы с нашей уткой - обязательно посмотрите посты с хэштегом #grokit.
Однако, не все знают, что в нашем чате мы публикуем еще больше задач и вопросов. Вот, например, такую задачку по Pandas с реального собеседования недавно решали участники чата 💥 И многие, кстати, правильно решили.
Если Вы тоже хотите получать еще больше задачек - вступайте в наш чат 👉🏻 https://news.1rj.ru/str/itresume_chat
Ну и, естественно, пишите свои варианты решения задачи в комментариях под этим постом, мы обязательно сделаем ревью каждого ответа 🙃
Всем большой GROK IT! 🦆
#grokit #grokit_python #grokit_pandas
🐍 История языка Python и Великий переход
Все мы так или иначе пишем код на Python, анализируем данные библиотеками Python или хотя бы просто слышали про Python. Но скажите честно - Вы когда-нибудь интересовались историей этого самого Python?))
Если ответ «нет», то самое время сделать это прямо сейчас, потому что развивался он крайне интересно. Если же ответ положительный, то не будет лишним немного освежить это в памяти 🙃
Особенно интересный этап развития Python - момент Великого перехода, когда Python 2 отошел на второй план и ведущей версией стал Python 3. На просторах интернета до сих пор ведутся горячие дискуссии и рассказываются истории о болезненности этого перехода: компании были вынуждены переписывать тысячи и десятки тысяч строк кода, потому что другого пути не было - версии были обратно несовместимы.
Обо всем этом мы и подготовили карточки. Приятного пятничного чтения! ☺️
Все мы так или иначе пишем код на Python, анализируем данные библиотеками Python или хотя бы просто слышали про Python. Но скажите честно - Вы когда-нибудь интересовались историей этого самого Python?))
Если ответ «нет», то самое время сделать это прямо сейчас, потому что развивался он крайне интересно. Если же ответ положительный, то не будет лишним немного освежить это в памяти 🙃
Особенно интересный этап развития Python - момент Великого перехода, когда Python 2 отошел на второй план и ведущей версией стал Python 3. На просторах интернета до сих пор ведутся горячие дискуссии и рассказываются истории о болезненности этого перехода: компании были вынуждены переписывать тысячи и десятки тысяч строк кода, потому что другого пути не было - версии были обратно несовместимы.
Обо всем этом мы и подготовили карточки. Приятного пятничного чтения! ☺️