en
Feedback
Академия Кода

Академия Кода

Open in Telegram

Академия кода. Полезный контент по программированию. По всем вопросам @evgenycarter

Show more
1 949
Subscribers
No data24 hours
-97 days
-2830 days
Posts Archive
Функция findall() Если мы хотим найти все вхождения, в дело вступает функция findall(). Синтаксис: findall(pattern, string, f
Функция findall() Если мы хотим найти все вхождения, в дело вступает функция findall(). Синтаксис: findall(pattern, string, flags=0[optional]) В случае успеха данная функция возвращает список, в котором в виде строк содержатся все искомые вхождения по порядку. Если вхождений нет, то эта функция возвратит пустой список. #python Подписывайтесь на канал 👉@cod_academy

Что такое переопределение (overriding) методов? Переопределение методов происходит, когда child хочет изменить поведение parent класса. Если нужно, чтоб выполнилось-таки то, что есть в методе parent, можно использовать в child конструкцию вида super.methodName(), что выполнит работу parent метода, а уже потом добавить логику. Требования, которые нужно соблюдать: • сигнатура метода должна быть такая же; • возвращаемое значение должно быть таким же. #java Подписывайтесь на канал 👉@cod_academy

Программирование на С++ и URI в коде Вы можете поместить URI в свой код на C++, и компилятор не выдаст ошибку. Любой идентифи
Программирование на С++ и URI в коде Вы можете поместить URI в свой код на C++, и компилятор не выдаст ошибку. Любой идентификатор, за которым следует двоеточие, становится меткой goto в С++. Все, что следует за двойным слешем, воспринимается как комментарий. Именно поэтому в приведенном выше коде http – это метка, а //google.com/ – комментарий. Но компилятор может выдать предупреждение, так как заданная метка не используется. #cpp Подписывайтесь на канал 👉@cod_academy

Потоковый ввод Вы можете обрабатывать ввод от пользователя потоком. В таком случае для завершения надо воспользоваться специа
Потоковый ввод Вы можете обрабатывать ввод от пользователя потоком. В таком случае для завершения надо воспользоваться специальной "командой" на Windows — Ctrl + D. Запустить потоковый ввод можно через библиотеку sys и метод stdin. Если требуется получить и тут же обработать строку, то так и пишем: sys.stdin Если надо в начале прочитать весь потоковый ввод, а затем обработать, то sys.stdin.readlines() На картинке представлено 2 варианта. #python Подписывайтесь на канал 👉@cod_academy

Какими значениями инициализируются переменные по умолчанию? • Числа инициализируются 0 или 0.0; • char — \u0000; • boolean — false; • Объекты (в том числе String) — null. #java Подписывайтесь на канал 👉@cod_academy

Вывод параметра шаблона класса Довольно странное название функции, да? Её суть в том, что с C++17 компилятор может сам опреде
Вывод параметра шаблона класса Довольно странное название функции, да? Её суть в том, что с C++17 компилятор может сам определять типы аргументов конструкторов стандартных классов. Раньше же это работало лишь для функций. Для того, чтобы осознать удобство этой функции, нужно быть знакомыми с конструкторами классов в C++. #cpp Подписывайтесь на канал 👉@cod_academy

Библиотека showballstemmer Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь, например, наход
Библиотека showballstemmer Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь, например, находить по минимальному запросу. Некоторые используют pymorph2 (первая слишком много потребляет ресурсов), но ведь достаточно определять основу слова, а не начальную форму для нахождения большинства результатов. Библиотека showballstemmer и занимается тем, что определяет основу слова, что делает поиск более точным. А главное — библиотека мало потребляет, а результат получается намного лучше. В начале следует импортировать модуль требуемого языка, к примеру вот модули английского, русского и французского соответственно: EnglishStemmer, FrenchStemmer, RussianStemmer. #python Подписывайтесь на канал 👉@cod_academy

Перегрузка в Java Рассмотрим работу перегрузки методов в Java. Что, если передавать в функцию аргумент, который не вполне соо
Перегрузка в Java Рассмотрим работу перегрузки методов в Java. Что, если передавать в функцию аргумент, который не вполне соответствует определенным нами аргументам по типу? На этом этапе возможны два исхода. 1. Произойдет преобразование типа, но в более высокий тип (с точки зрения диапазона) в том же семействе. 2. Произойдет преобразование типа в следующее более старшее семейство (предположим, что если нет типа данных long, доступного для типа данных int, тогда будет поиск типа данных с плавающей запятой). #java Подписывайтесь на канал 👉@cod_academy

Шаблон Voodoo Вы можете настраивать шаблоны класса под конкретные значения или типы аргументов: так работает специализация ша
Шаблон Voodoo Вы можете настраивать шаблоны класса под конкретные значения или типы аргументов: так работает специализация шаблонов классов C++. Если это рекурсия, можно записывать базовые случаи, а затем определить общий шаблон как рекурсивную комбинацию этих случаев. #cpp Подписывайтесь на канал 👉@cod_academy

Множества set Многие недооценивают данный тип, а зря. К примеру, если вам нужно найти количество одинаковых слов, то множеств
Множества set Многие недооценивают данный тип, а зря. К примеру, если вам нужно найти количество одинаковых слов, то множества с легкостью вам помогут. Похожи на списки, но на неупорядоченные. Они больше весят, но намного быстрее. В небольших проектах оправдано такое использование: множество id админов/пользователей (в зависимости от размера ОЗУ), когда требуется только проверить есть ли id в списке. Через стандартный список это займет O(n) или если он отсортирован O(log n) , в то время как у множеств это всегда O(1). Зная преимущества вы всегда можете выбрать наиболее предпочтительный вариант в той или иной ситуации. #python Подписывайтесь на канал 👉@cod_academy

🔥Как подключить библиотеки С++ к реальным проектам? ⚡️Узнаете на бесплатном занятии OTUS, которое пройдет 26 мая в 20:00. На
🔥Как подключить библиотеки С++ к реальным проектам? Узнаете на бесплатном занятии OTUS, которое пройдет 26 мая в 20:00. На встрече займемся подключением библиотеки для создания Python-модуля. В результате занятия вы научитесь использовать: -CMake и vcpkg для подключения библиотек; -С++ и CMake для создания библиотек; -pybind11 для создания Python-модулей. ✨Это открытое занятие пройдет в рамках специализации “C++ Developer” и будет особенно полезно начинающим разработчикам на плюсах. После пробного урока вы сможете приобрести онлайн-курс в рассрочку. Успевайте записаться на пробный урок! https://otus.pw/Mw15/ Нативная интеграция. Информация о продукте www.otus.ru

Какая разница между процессом и потоком? Существуют следующие различия между процессом и потоком: 1) Программа в исполнении называется процессом, тогда как Поток является подмножеством процесса. 2) Процессы независимы, тогда как потоки являются подмножеством процесса. 3) Процессы имеют различное адресное пространство в памяти, в то время как потоки содержат общее адресное пространство. 4) Переключение контекста происходит быстрее между потоками по сравнению с процессами. 5) Межпроцессное взаимодействие медленнее и дороже, чем межпотоковое взаимодействие. 6) Любые изменения в родительском процессе не влияют на дочерний процесс, тогда как изменения в родительском потоке могут влиять на дочерний поток. #java Подписывайтесь на канал 👉@cod_academy

Для чего используется ключевое слово volatile? Для указания компилятору, что доступ к переменной может осуществляться из мест
Для чего используется ключевое слово volatile? Для указания компилятору, что доступ к переменной может осуществляться из мест, неподконтрольных ему. А как следствие, что работу с данной переменной не нужно подвергать разного рода оптимизациям. Т.е. если volatile присутствует в каком-то условии, которое не меняется со временем, то компилятор может оптимизировать его, чтобы избежать ненужных проверок, при использовании volatile компилятор скорее всего не будет этого делать. #cpp Подписывайтесь на канал 👉@cod_academy

🔥Как за пару часов с нуля сделать игру на Java? Узнайте 25 мая в 20:00 мск на открытом уроке в OTUS! Вебинар приурочен к ста
🔥Как за пару часов с нуля сделать игру на Java? Узнайте 25 мая в 20:00 мск на открытом уроке в OTUS! Вебинар приурочен к старту онлайн-курса «Специализация Java Developer» в OTUS. Продолжить обучение на курсе можно в рассрочку. ⚡️На занятии мы посмотрим, как за несколько часов с нуля сделать небольшую консольную игру на Java. Прямо на ходу мы будем изучать принципы написания кода и продумывать логику игры. ✨Урок будет полезен тем, кто хочет: — С нуля изучать Java; — Посмотреть, как с нуля на практике пишутся Java-приложения; — Научиться писать код на языке Java и получить базовые навыки программирования. В результате вы увидите, как пишется код и создаются программы на языке Java. 👇Зарегистрируйтесь, чтобы участвовать в открытом уроке: https://otus.pw/lrlz/ Нативная интеграция. Информация о продукте www.otus.ru

Модуль sys Данный модуль предоставляет доступ к широким возможностям интерпретатора python. К примеру, с его помощью можно за
Модуль sys Данный модуль предоставляет доступ к широким возможностям интерпретатора python. К примеру, с его помощью можно завершить работу скрипта, узнать вес объекта, получить пути к библиотекам, узнать операционную систему, узнать кодировку файлов по умолчанию и многое другое. Если вы планируете участвовать в олимпиадах, то обязаны так же обрабатывать потоковый ввод. Для своих программ можно обойтись и без него. Я перечислил самые полезные функции, остальное всегда можно прочитать в документации (да, её стоит читать) или загуглить. #python Подписывайтесь на канал 👉@cod_academy

Как написать immutable класс? Чтоб написать immutable неизменяемый класс, нужно следовать простым пунктам: • сделать класс фи
Как написать immutable класс? Чтоб написать immutable неизменяемый класс, нужно следовать простым пунктам: • сделать класс финальным. • сделать все поля приватными и создать только геттеры к ним. Сеттеры, разумеется, не нужно. • Сделать все mutable поля final, чтобы установить значение можно было только один раз. • инициализировать все поля через конструктор, выполняя глубокое копирование (то есть, копируя и сам объект, и его переменные, и переменные переменных, и так далее) • клонировать объекты mutable переменных в геттерах, чтобы возвращать только копии значений, а не ссылки на актуальные объекты. #java Подписывайтесь на канал 👉@cod_academy

Функция before_begin() forward_list::before_begin() - это встроенная функция в CPP STL, которая возвращает итератор, который
Функция before_begin() forward_list::before_begin() - это встроенная функция в CPP STL, которая возвращает итератор, который указывает на позицию перед первым элементом forward_list. #cpp Подписывайтесь на канал 👉@cod_academy

Очистка элементов в последовательности Встроенный модуль itertools был создан для работы с более сложными случаями итераторов
Очистка элементов в последовательности Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти. Иногда возникает необходимость удалить ненужные объекты в последовательности. Как раз для этого и используют itertools, а именно метод compress. Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности. Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее. #python Подписывайтесь на канал 👉@cod_academy

Что такое immutable? Immutable называются объекты, состояния и переменные которых нельзя изменить после создания объекта. Чем
Что такое immutable? Immutable называются объекты, состояния и переменные которых нельзя изменить после создания объекта. Чем не отличный ключ для HashMap, да?) Например, String, Integer, Double и так далее. #java Подписывайтесь на канал 👉@cod_academy

В чем отличие vector от deque? Ответ: Здесь вспоминают о наличии у deque методов push_front и pop_front. Но основное отличие в организации памяти, у vector она как у обычного Си-массива, т.е. последовательный и непрерывный набор байт, а у deque это фрагменты с разрывами. За счет этого отличия vector всегда можно привести к обычному массиву или скопировать целиком участок памяти, но зато у deque операции вставки/удаления в начало быстрее (O(1) против O(n)), ввиду того, что не нужно перемещать. #cpp Подписывайтесь на канал 👉@cod_academy