Спортивное программирование: что это, зачем и какие задачи приходится решать
Это не программирование ради программирования, как можно было бы подумать, — соревнования помогают участникам повысить профессиональный уровень, научившись решать сложные задачи из самых разных направлений разработки. Так что такое спортивное программирование и что о нём стоит знать новичку?
Читать…
Разъяснивший Python
Это не программирование ради программирования, как можно было бы подумать, — соревнования помогают участникам повысить профессиональный уровень, научившись решать сложные задачи из самых разных направлений разработки. Так что такое спортивное программирование и что о нём стоит знать новичку?
Читать…
Разъяснивший Python
Data classes
Начиная с версии 3.7, Python поставляется с классами данных. У них есть несколько преимуществ по сравнению с обычными классами или другими альтернативами:
- возврат нескольких значений или словарей;
- класс данных требует минимального количества кода;
- возможность сравнения классов данных;
- возможность распечатать класс данных для отладки при помощи repr;
- снижение вероятности ошибок в связи с требованием класса данных type hints.
Разъяснивший Python
Начиная с версии 3.7, Python поставляется с классами данных. У них есть несколько преимуществ по сравнению с обычными классами или другими альтернативами:
- возврат нескольких значений или словарей;
- класс данных требует минимального количества кода;
- возможность сравнения классов данных;
- возможность распечатать класс данных для отладки при помощи repr;
- снижение вероятности ошибок в связи с требованием класса данных type hints.
Разъяснивший Python
List Comprehensions
List comprehension может заменить неэстетичные циклы, используемые для заполнения списка. Синтаксис выглядит следующим образом:
Поскольку здесь можно использовать выражения, вам доступна работа с математикой, вызов внешней функции и, наконец, вы сможете использовать «if» для фильтрации списка.
Разъяснивший Python
List comprehension может заменить неэстетичные циклы, используемые для заполнения списка. Синтаксис выглядит следующим образом:
[ expression for item in list if conditional ]
Поскольку здесь можно использовать выражения, вам доступна работа с математикой, вызов внешней функции и, наконец, вы сможете использовать «if» для фильтрации списка.
Разъяснивший Python
Замена переменных на месте
Этот аккуратный трюк поможет сэкономить несколько строк кода.
Разъяснивший Python
Этот аккуратный трюк поможет сэкономить несколько строк кода.
Разъяснивший Python
Настраиваемый логгер-декоратор
Начнем с примера использования. Так мы не перегружаем внимание внутренней сложностью и повышаем шансы создать удачный интерфейс модуля. На этом принципе основана разработка через тестирование — test-driven development (TTD).
У класса
Разъяснивший Python
Начнем с примера использования. Так мы не перегружаем внимание внутренней сложностью и повышаем шансы создать удачный интерфейс модуля. На этом принципе основана разработка через тестирование — test-driven development (TTD).
У класса
Logger есть метод log_msg(), который можно использовать напрямую внутри функций.Разъяснивший Python
Использование подчеркивания в REPL
Вы можете получить результат последнего выражения в Python REPL с помощью оператора подчеркивания, например, в Python REPL это выглядит следующим образом
Разъяснивший Python
Вы можете получить результат последнего выражения в Python REPL с помощью оператора подчеркивания, например, в Python REPL это выглядит следующим образом
Разъяснивший Python
Сложение списков
Не всегда операторы в python ведут себя так, как мы привыкли. Например сложение списков.
Как видно, инструкция 28 в случае
Разъяснивший Python
Не всегда операторы в python ведут себя так, как мы привыкли. Например сложение списков.
Как видно, инструкция 28 в случае
+ простое сложение, а в случае += — сложение на месте, которое не приводит к созданию нового списка. += в данном случае сопоставим по производительности с list.extend.Разъяснивший Python
Декорируем функции
Декоратор – это обертка вокруг функции, которая определенным образом изменяет ее поведение. Существуют варианты использования декораторов, и вы, возможно, уже применяли их раньше при работе с такими фреймворками, как Flask.
Разъяснивший Python
Декоратор – это обертка вокруг функции, которая определенным образом изменяет ее поведение. Существуют варианты использования декораторов, и вы, возможно, уже применяли их раньше при работе с такими фреймворками, как Flask.
Разъяснивший Python
Форматирование именованных строк
Такую штуку используют нечасто, но если данные уже находятся в словаре, для форматирования именованных строк пригодится.
Вы даже можете использовать функцию locals(), но в последних версиях Python придется обращаться к f-строкам.
Разъяснивший Python
Такую штуку используют нечасто, но если данные уже находятся в словаре, для форматирования именованных строк пригодится.
Вы даже можете использовать функцию locals(), но в последних версиях Python придется обращаться к f-строкам.
Разъяснивший Python
Нарезка списка
Синтаксис нарезания таков:
Start, stop и step необязательны. У них есть дефолтные значения, которые активируются, если не заполнить параметры:
0 для start;
конец списка для stop;
1 для step.
Разъяснивший Python
Синтаксис нарезания таков:
a[start:stop:step]
Start, stop и step необязательны. У них есть дефолтные значения, которые активируются, если не заполнить параметры:
0 для start;
конец списка для stop;
1 для step.
Разъяснивший Python
Возврат нескольких значений
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
Разъяснивший Python
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
Разъяснивший Python
Объединение словарей
Начиная с Python 3.5, стало проще объединять словари.
Если встречаются дублирующиеся ключи – в первом словаре они будут перезаписаны.
Разъяснивший Python
Начиная с Python 3.5, стало проще объединять словари.
Если встречаются дублирующиеся ключи – в первом словаре они будут перезаписаны.
Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь заговорить на английском, но не с кем практиковаться?
Появилась ИИ-девушка, с которой можно общаться голосовыми на любые темы, как с носителем. Она слушает твою речь, подробно исправляет ошибки и помогает говорить увереннее. Попробовать можно бесплатно.
🇬🇧 Английский: @ChattyEnglishBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
Появилась ИИ-девушка, с которой можно общаться голосовыми на любые темы, как с носителем. Она слушает твою речь, подробно исправляет ошибки и помогает говорить увереннее. Попробовать можно бесплатно.
🇬🇧 Английский: @ChattyEnglishBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
👏1
Использование * и ** для распаковки аргументов функций
Некоторые функции требуют длинного списка аргументов. Этого следует избегать (например, с помощью классов данных), хотя это не всегда зависит от вас. Существует другой вариант – создать словарь с именованными аргументами и передать его функции. Так ваш код станет более читабельным.
Распаковать словарь можно, используя префикс **
Аналогично можно использовать * для распаковки массива и передачи его содержимого в качестве аргументов функции
Разъяснивший Python
Некоторые функции требуют длинного списка аргументов. Этого следует избегать (например, с помощью классов данных), хотя это не всегда зависит от вас. Существует другой вариант – создать словарь с именованными аргументами и передать его функции. Так ваш код станет более читабельным.
Распаковать словарь можно, используя префикс **
Аналогично можно использовать * для распаковки массива и передачи его содержимого в качестве аргументов функции
Разъяснивший Python
🤔2😁1
Подключаем документацию к LLM
LLM умеет отвечать на вопросы, но не знает особенностей твоего проекта и внутренней документации. Сегодня мы разберём, как с помощью RAG подключить собственные данные к модели: от подготовки документов и эмбеддингов до поиска нужного контекста и генерации ответов.
Читать...
Разъяснивший Python
LLM умеет отвечать на вопросы, но не знает особенностей твоего проекта и внутренней документации. Сегодня мы разберём, как с помощью RAG подключить собственные данные к модели: от подготовки документов и эмбеддингов до поиска нужного контекста и генерации ответов.
Читать...
Разъяснивший Python
❤1😁1
Получение уникальных элементов из списка или строки
Создавая набор с помощью функции set(), вы получаете все уникальные элементы из списка или объекта.
Разъяснивший Python
Создавая набор с помощью функции set(), вы получаете все уникальные элементы из списка или объекта.
Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Вот 14 авторских обучающих IT каналов по самым востребованным областям программирования:
Выбирай своё направление:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1🎉1
Дробление строки в список
Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела
Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().
Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений).
Разъяснивший Python
Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела
Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().
Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений).
Разъяснивший Python
🔥4😁1
Бесплатный вводный урок английского для взрослых
Хотите узнать свой уровень английского и понять, с чего начать обучение? Запишитесь на бесплатное занятие с преподавателем SYNG.
За 40 минут вы:
— определите свой уровень английского;
— выявите пробелы в знаниях;
— составите персональный план обучения с учётом ваших целей и сроков;
Занятие проходит один на один с преподавателем, более 80% времени посвящено разговорной практике. Даже если вы начинаете с нуля, вы сможете начать говорить уже на первом уроке.
Запишитесь на бесплатный вводный урок и начните говорить на английском свободно.
Хотите узнать свой уровень английского и понять, с чего начать обучение? Запишитесь на бесплатное занятие с преподавателем SYNG.
За 40 минут вы:
— определите свой уровень английского;
— выявите пробелы в знаниях;
— составите персональный план обучения с учётом ваших целей и сроков;
Занятие проходит один на один с преподавателем, более 80% времени посвящено разговорной практике. Даже если вы начинаете с нуля, вы сможете начать говорить уже на первом уроке.
Запишитесь на бесплатный вводный урок и начните говорить на английском свободно.
❤1🎉1
Объединение списка строк в одну строку
Все сводится к тому, что функция join() может присоединять не только списки, но и любой iterable. Помещение его внутрь строки предотвращает реализацию одной и той же функциональности в нескольких местах.
Разъяснивший Python
Все сводится к тому, что функция join() может присоединять не только списки, но и любой iterable. Помещение его внутрь строки предотвращает реализацию одной и той же функциональности в нескольких местах.
Разъяснивший Python
👍1🔥1😁1