⛔️ Избавляемся от «лесенок» из IF-ELSE в коде (актуально для любого языка программирования)
Любому программисту знакома ситуация: нужно описать переменную, значение которой зависит от комбинаций различных параметров. Обычно, ничего лучше, чем просто построить «лесенку» из IF-ELSE блоков в голову не приходит.
Но на самом деле, в большинстве случаев, от таких многоэтажных конструкций избавиться можно, нужно и несложно. Ниже приводим несколько принципов, которые в этом помогут, а на карточках - пример такого «преображения» 🙃
✅ Комбинируйте условия с одинаковым результатом
Конечно, наш мозг мыслит последовательно, каскадно, поэтому и получаются «лесенки»:
> Сейчас суббота или воскресенье → отдыхаем
> Иначе: сейчас будний день и время равно 13-14 часов → тоже отдыхаем
> Иначе: работаем
Скомбинировать эти условия можно намного проще:
> Если выходной или 13-14 часов → отдыхаем
> Иначе: работаем
На карточках ниже наглядно продемонстрировано, как этот принцип работает в случае большого количество комбинаций различных «если».
✅ Не добавляйте дополнительных условий
Согласитесь, такая логика избыточна:
> Если выходной → отдыхаем
> Иначе если будний день → работаем
Это эквивалентно:
> Если выходной → отдыхаем, иначе работаем
✅ Порядок условий имеет значение
Сравните, где компьютер выполнит меньше телодвижений? Например, мы описываем функцию, где выбираем досуг в зависимости от дня недели.
Вариант 1:
> Если выходной: если суббота → тусим с друзьями до утра, если воскресенье → смотрим кино с попкорном в кругу семьи.
> Если будний день: NULL.
Вариант 2:
> Если будний день: NULL.
> Если суббота → тусим с друзьями до утра, если воскресенье → смотрим кино с попкорном в кругу семьи.
Понятно, что 2 вариант предпочтительней, потому что все будние дни будут отсеиваться еще в самом начале + мы избегаем проверки на выходной день и сразу проверяем субботу/воскресенье.
🧐 Кстати, какие способы вы еще можете посоветовать, чтобы улучшить качество кода в части работы с if-else блоками?
Любому программисту знакома ситуация: нужно описать переменную, значение которой зависит от комбинаций различных параметров. Обычно, ничего лучше, чем просто построить «лесенку» из IF-ELSE блоков в голову не приходит.
Но на самом деле, в большинстве случаев, от таких многоэтажных конструкций избавиться можно, нужно и несложно. Ниже приводим несколько принципов, которые в этом помогут, а на карточках - пример такого «преображения» 🙃
✅ Комбинируйте условия с одинаковым результатом
Конечно, наш мозг мыслит последовательно, каскадно, поэтому и получаются «лесенки»:
> Сейчас суббота или воскресенье → отдыхаем
> Иначе: сейчас будний день и время равно 13-14 часов → тоже отдыхаем
> Иначе: работаем
Скомбинировать эти условия можно намного проще:
> Если выходной или 13-14 часов → отдыхаем
> Иначе: работаем
На карточках ниже наглядно продемонстрировано, как этот принцип работает в случае большого количество комбинаций различных «если».
✅ Не добавляйте дополнительных условий
Согласитесь, такая логика избыточна:
> Если выходной → отдыхаем
> Иначе если будний день → работаем
Это эквивалентно:
> Если выходной → отдыхаем, иначе работаем
✅ Порядок условий имеет значение
Сравните, где компьютер выполнит меньше телодвижений? Например, мы описываем функцию, где выбираем досуг в зависимости от дня недели.
Вариант 1:
> Если выходной: если суббота → тусим с друзьями до утра, если воскресенье → смотрим кино с попкорном в кругу семьи.
> Если будний день: NULL.
Вариант 2:
> Если будний день: NULL.
> Если суббота → тусим с друзьями до утра, если воскресенье → смотрим кино с попкорном в кругу семьи.
Понятно, что 2 вариант предпочтительней, потому что все будние дни будут отсеиваться еще в самом начале + мы избегаем проверки на выходной день и сразу проверяем субботу/воскресенье.
🧐 Кстати, какие способы вы еще можете посоветовать, чтобы улучшить качество кода в части работы с if-else блоками?
🔥 Что лучше - подписка или CodeCoins: нужно Ваше мнение!
Сейчас у нас на платформе есть своя внутренняя валюта - CodeCoins. Она нужна, чтобы вы могли открывать закрытые задачи и тесты, а также покупать решения и подсказки к задачам.
Монеты можно покупать за деньги небольшими порциями (доступно несколько пакетов) и точечно их тратить по мере необходимости. Также есть возможность получать монеты бесплатно (приветственный бонус, пригласить друга, найти баг и т.д.) + за решение каждой задачи вы получаете бонус.
Однако, некоторые пользователи платформы предложили другую модель - стандартную подписку. Например, вы покупаете за N рублей месячную/годовую подписку и пользуетесь всем функционалом платформы.
Проголосуйте - какой вариант вам нравится больше?) Или может быть у вас есть еще какие-то идеи?)
Сейчас у нас на платформе есть своя внутренняя валюта - CodeCoins. Она нужна, чтобы вы могли открывать закрытые задачи и тесты, а также покупать решения и подсказки к задачам.
Монеты можно покупать за деньги небольшими порциями (доступно несколько пакетов) и точечно их тратить по мере необходимости. Также есть возможность получать монеты бесплатно (приветственный бонус, пригласить друга, найти баг и т.д.) + за решение каждой задачи вы получаете бонус.
Однако, некоторые пользователи платформы предложили другую модель - стандартную подписку. Например, вы покупаете за N рублей месячную/годовую подписку и пользуетесь всем функционалом платформы.
Проголосуйте - какой вариант вам нравится больше?) Или может быть у вас есть еще какие-то идеи?)
🧐 Как решают задачи первые пользователи платформы?
Прошло чуть больше недели с того момента, как мы запустили платформу с задачами и тестами itresume.ru. Уже сотни раз пользователи платформы проверяли свои решения задач и проходили тесты, так что можно делать первые выводы 🔥
Мы решили собрать для вас интересную статистику о том, как пользователи itresume.ru решают задачи и тесты:
1. В среднем, перед тем, как дать правильный ответ, пользователь делает 4 попытки 🤟🏻
2. В среднем всего 33% решений, отправленных на проверку, - правильные. Около 66% решений неверные 😶
3. Самые «популярные» темы для решения задач: массивы, базы данных, строки и синтаксис Python.
4. Задача, которая вызвала больше всего затруднений на данный момент - «ООП: Счетчик объектов»: всего 15% попыток увенчались успехом. Попробуйте - а у вас получится решить эту задачу https://itresume.ru/problems/oop-instance-counter? 😏
5. Самые популярные тесты: «Общий тест по SQL» и «Data Science: Часть 1». Кому интересно, ссылки на тесты:
https://itresume.ru/tests/data-science-1
https://itresume.ru/tests/general-sql
Мы можем рассказать еще много всего интересного, но оставим это для следующих постов))
Кстати, а вы уже попробовали платформу, порешали задачки? 😏
Прошло чуть больше недели с того момента, как мы запустили платформу с задачами и тестами itresume.ru. Уже сотни раз пользователи платформы проверяли свои решения задач и проходили тесты, так что можно делать первые выводы 🔥
Мы решили собрать для вас интересную статистику о том, как пользователи itresume.ru решают задачи и тесты:
1. В среднем, перед тем, как дать правильный ответ, пользователь делает 4 попытки 🤟🏻
2. В среднем всего 33% решений, отправленных на проверку, - правильные. Около 66% решений неверные 😶
3. Самые «популярные» темы для решения задач: массивы, базы данных, строки и синтаксис Python.
4. Задача, которая вызвала больше всего затруднений на данный момент - «ООП: Счетчик объектов»: всего 15% попыток увенчались успехом. Попробуйте - а у вас получится решить эту задачу https://itresume.ru/problems/oop-instance-counter? 😏
5. Самые популярные тесты: «Общий тест по SQL» и «Data Science: Часть 1». Кому интересно, ссылки на тесты:
https://itresume.ru/tests/data-science-1
https://itresume.ru/tests/general-sql
Мы можем рассказать еще много всего интересного, но оставим это для следующих постов))
Кстати, а вы уже попробовали платформу, порешали задачки? 😏
🔥 Запуск кодинг-марафона
Друзья, мы запускаем новый интерактив - кодинг-марафон!
Марафон будет состоять из 3 задач. Каждую пятницу мы будем публиковать новую задачу марафона. За правильное решение задачи вы максимально можете получить 10 баллов.
✅ Баллы будут начисляться за:
1. Правильность решения
2. Аккуратность кода
3. Оптимальность подхода
Задачи будут размещены на нашей платформе itresume.ru, так что правильность решения вы сможете оценить сразу же.
✅ Основные моменты:
→ Задача должна быть решена на itresume.ru
→ Все юнит-тесты должны выполниться верно
→ В коде не должно быть лишних принтов или лишнего кода
✅ В конце марафона мы объявим 3 победителей. Победители получат:
1 место - премиум-доступ к нашей платформе
2 место - 1 500 CodeCoins
3 место - 500 CodeCoins
Дополнительно: ✓ Безмерное уважение и почет
Желаем удачи и не пропустите задачку в ближайшую пятницу 😉
✅ FAQ
- Будут ли публиковаться решения предыдущих задач?
Да. В течение недели после выхода новой задачи будет опубликован подробный разбор предыдущей задачи.
- Можно ли решать задачу после опубликования ее решения?
Да, но баллы за нее начисляться уже не будут. Чтобы баллы начислились, задачу нужно решить в период: с момента публикации до публикации следующей задачи.
Друзья, мы запускаем новый интерактив - кодинг-марафон!
Марафон будет состоять из 3 задач. Каждую пятницу мы будем публиковать новую задачу марафона. За правильное решение задачи вы максимально можете получить 10 баллов.
✅ Баллы будут начисляться за:
1. Правильность решения
2. Аккуратность кода
3. Оптимальность подхода
Задачи будут размещены на нашей платформе itresume.ru, так что правильность решения вы сможете оценить сразу же.
✅ Основные моменты:
→ Задача должна быть решена на itresume.ru
→ Все юнит-тесты должны выполниться верно
→ В коде не должно быть лишних принтов или лишнего кода
✅ В конце марафона мы объявим 3 победителей. Победители получат:
1 место - премиум-доступ к нашей платформе
2 место - 1 500 CodeCoins
3 место - 500 CodeCoins
Дополнительно: ✓ Безмерное уважение и почет
Желаем удачи и не пропустите задачку в ближайшую пятницу 😉
✅ FAQ
- Будут ли публиковаться решения предыдущих задач?
Да. В течение недели после выхода новой задачи будет опубликован подробный разбор предыдущей задачи.
- Можно ли решать задачу после опубликования ее решения?
Да, но баллы за нее начисляться уже не будут. Чтобы баллы начислились, задачу нужно решить в период: с момента публикации до публикации следующей задачи.
🔥 7 функций Pandas, которые нужно знать
Pandas - одна из самых популярных библиотек Python. Именно ее используют аналитики и Data Scientist-ы для быстрой обработки табличных данных, построения графиков и проведения расчетов.
Вместе с онлайн-университетом SF Education мы собрали для вас 7 функций Pandas, которые обязательно нужно взять на вооружение, чтобы работать с этим фреймворком максимально эффективно. Подробнее - в карточках 😉
Pandas - одна из самых популярных библиотек Python. Именно ее используют аналитики и Data Scientist-ы для быстрой обработки табличных данных, построения графиков и проведения расчетов.
Вместе с онлайн-университетом SF Education мы собрали для вас 7 функций Pandas, которые обязательно нужно взять на вооружение, чтобы работать с этим фреймворком максимально эффективно. Подробнее - в карточках 😉
🔥 Разбор задачи: Комбинированный список из разных структур
Недавно мы устраивали конкурс: кто лучше всех решит задачу Комбинированный список из разных структур на платформе IT Resume, тот и получит премиум-доступ к платформе.
Решений было много, все они отличались между собой, поэтому мы решили сделать разбор того варианта, который мы считаем правильным 🙃
Объединение данных из разных структур (кортежей, словарей, множеств и т.д.) - довольно распространенная задача. Для ее решения существует множество способов. Например, создать пустой список и в трех циклах по каждой структуре добавлять туда информацию.
Однако, очевидно, что это очень неоптимальный и «некрасивый» способ решения данной задачи.
✅ Для «красивого» решения можно воспользоваться полезной фичей языка Python - распаковкой.
Операция распаковки (*) позволяет «вытащить» элементы из каждой структуры данных, избавившись тем самым от ограничения каждой из структур и получив просто «голые» элементы. Распаковав таким образом каждую структуру, остается только объединить все получившиеся элементы в один список.
Сделать это можно следующим образом:
🤔 А каким способом вы бы решили эту задачу?
Недавно мы устраивали конкурс: кто лучше всех решит задачу Комбинированный список из разных структур на платформе IT Resume, тот и получит премиум-доступ к платформе.
Решений было много, все они отличались между собой, поэтому мы решили сделать разбор того варианта, который мы считаем правильным 🙃
Объединение данных из разных структур (кортежей, словарей, множеств и т.д.) - довольно распространенная задача. Для ее решения существует множество способов. Например, создать пустой список и в трех циклах по каждой структуре добавлять туда информацию.
Однако, очевидно, что это очень неоптимальный и «некрасивый» способ решения данной задачи.
✅ Для «красивого» решения можно воспользоваться полезной фичей языка Python - распаковкой.
Операция распаковки (*) позволяет «вытащить» элементы из каждой структуры данных, избавившись тем самым от ограничения каждой из структур и получив просто «голые» элементы. Распаковав таким образом каждую структуру, остается только объединить все получившиеся элементы в один список.
Сделать это можно следующим образом:
class Answer:
def combine(self, A, B, C):
return [*A, *B, *C]
🤔 А каким способом вы бы решили эту задачу?