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

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

Open in Telegram

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

Show more
1 949
Subscribers
No data24 hours
-97 days
-2830 days
Posts Archive
infinity Самая типичная проблема при написании некоторых сортировок — назначение самой большой переменной. Часто она решается
infinity Самая типичная проблема при написании некоторых сортировок — назначение самой большой переменной. Часто она решается простым вводом большого числа или возведением в степень. Это, конечно, не стареющая классика, но метод максимально не надежный, а главное есть более удачные способы float('infinity') или float('inf') для получения максимально возможного числа float('-infinity') или float('-inf') для получения минимально возможного числа. Не работает с int, требуется использовать именно float. #python Подписывайтесь на канал 👉@cod_academy

Какая основная разница между String, StringBuffer, StringBuilder? Класс String является неизменяемым (immutable) - модифицировать объект такого класса нельзя, можно лишь заменить его созданием нового экземпляра. Класс StringBuffer изменяемый - использовать StringBuffer следует тогда, когда необходимо часто модифицировать содержимое. Класс StringBuilder был добавлен в Java 5 и он во всем идентичен классу StringBuffer за исключением того, что он не синхронизирован и поэтому его методы выполняются значительно быстрей. #java Подписывайтесь на канал 👉@cod_academy

Что такое класс хранения? Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти. В C ++ поддерживаются такие классы хранения: auto, static, register, extern и mutable. Обратите внимание, что register устарел для C++11. Для C++17 он был удален и зарезервирован для будущего использования. #cpp Подписывайтесь на канал 👉@cod_academy

Как открыть zip файл в Python? Чтобы открыть zip-файл в Python, вы можете воспользоваться стандартной библиотекой zipfile #py
Как открыть zip файл в Python? Чтобы открыть zip-файл в Python, вы можете воспользоваться стандартной библиотекой zipfile #python Подписывайтесь на канал 👉@cod_academy

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

Инициализатор в if и switch Вам должна понравиться такая возможность из С++17. Теперь вы можете выполнять инициализацию перем
Инициализатор в if и switch Вам должна понравиться такая возможность из С++17. Теперь вы можете выполнять инициализацию переменных и проверять условие внутри if или switch. Это даёт сделать код более лаконичным и чистым. Общая форма: if (init-statement(x); condition(x)) { // some code } else { // в else тоже видно x // some more code } #cpp Подписывайтесь на канал 👉@cod_academy

Как распарсить строку json в Python? Для того, чтобы распарсить строку json, мы можем перевести её в читаемый для python'а фо
Как распарсить строку json в Python? Для того, чтобы распарсить строку json, мы можем перевести её в читаемый для python'а формат dict с помощью метода .loads() #python Подписывайтесь на канал 👉@cod_academy

Метод regionMatches() Используется для сравнения подстроки одной строки с подстрокой другой строки, то есть сравниваются част
Метод regionMatches() Используется для сравнения подстроки одной строки с подстрокой другой строки, то есть сравниваются части строк и возвращается результат этого сравнения — true (если части строк совпали) или false (не совпали). Параметры ignoreCase — логическая переменная со значение true — игнорировать регистр, со значением false — не игнорировать регистр. toffset — позиция, с которой начнем отсчет. other — другая строка, часть которой мы будем сравнивать. ooffset — позиция, с которой начнем отсчет в строке other len — количество символов для сравнения. #java Подписывайтесь на канал 👉@cod_academy

nullptr Раньше, для обнуления указателей использовался макрос NULL, являющийся нулем — целым типом, что, естественно, вызывал
nullptr Раньше, для обнуления указателей использовался макрос NULL, являющийся нулем — целым типом, что, естественно, вызывало проблемы (например, при перегрузке функций). Ключевое слово nullptr имеет свой собственный тип std::nullptr_t, что избавляет нас от бывших проблем. Существуют неявные преобразования nullptr к нулевому указателю любого типа и к bool (как false), но преобразования к целочисленных типам нет. #cpp Подписывайтесь на канал 👉@cod_academy

Библиотека Progressbar Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение про
Библиотека Progressbar Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает. В первую очередь это касается синхронных приложений. Ведь, если наш код выполняет что-то одно, то на другие действия он не будет реагировать, ставя их в очередь. Ну и еще один вариант показывать, что программа не виснет, а думает, при этом не обязательно показывать прогресс. Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас. #python Подписывайтесь на канал 👉@cod_academy

Ключевое слово abstract в Java abstract - это модификатор, применимый для классов, методов, но не для переменных. Он использу
Ключевое слово abstract в Java abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract: 1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены). 2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract. #java Подписывайтесь на канал 👉@cod_academy

Что за оператор −−> в С++? Это старый хитрый вопрос. В С++ нет оператора −−>. Рассмотрим такой код: if (p−−>m == 0) f(p); Выглядит так, как будто и правда есть оператор −−>, и если правильно объявить переменные p и m, то код даже скомпилируется и запустится: int p = 2; int m = 0; if (p−−>m == 0) f(p); Это означает: если p−− больше чем m (а это так), то надо сравнить результат (true) с нулём. Ну, true != 0, так что результат всего выражения — false, и функция f() не вызовется. Другими словами: if ((p−−) > m == 0) f(p); Пожалуйста, не тратьте много времени на подобные вопросы. Они сбивали с толку новичков ещё до того, как появился С++. #cpp Подписывайтесь на канал 👉@cod_academy

Библиотека schedule Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут вы
Библиотека schedule Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения. Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам. Библиотеку необходимо установить: install schedule В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие. #python Подписывайтесь на канал 👉@cod_academy

Почему char[] предпочтительнее String для хранения пароля? С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке. #java Подписывайтесь на канал 👉@cod_academy

Cтрого-типизированный enum У «традиционных» перечислений в С++ есть некоторые недостатки: они экспортируют свои значения в ок
Cтрого-типизированный enum У «традиционных» перечислений в С++ есть некоторые недостатки: они экспортируют свои значения в окружающую область видимости (что может привести к конфликту имен), они неявно преобразовываются в целый тип и не могут иметь определенный пользователем тип. Эти проблемы устранены в С++11 с введением новой категории перечислений, названных strongly-typed enums. Они определяются ключевым словом enum class. Они больше не экспортируют свои перечисляемые значения в окружающую область видимости, больше не преобразуются неявно в целый тип и могут иметь определенный пользователем тип (эта опция так же добавлена и для «традиционных» перечислений"). #cpp Подписывайтесь на канал 👉@cod_academy

Как сравнить строки без учета регистра в Python? Есть несколько способов сравнить строки без учета регистра в Python: Использ
Как сравнить строки без учета регистра в Python? Есть несколько способов сравнить строки без учета регистра в Python: Использовать метод .casefold() чтобы игнорировать регистр Привести обе строки к заглавным или строчным, используя lower() или upper() для сравниваемых строк #python Подписывайтесь на канал 👉@cod_academy

Разница между == и .equals() в Java Как правило, в Java для сравнения объектов и проверки равенства используются оба equals()
Разница между == и .equals() в Java Как правило, в Java для сравнения объектов и проверки равенства используются оба equals() и «==», но вот некоторые из различий между ними: 1. Один из них является методом, а другой - оператором. 2. Можно использовать оператор == для сравнения ссылок (адресов в памяти) и метод .equals() для сравнения содержимого. Проще говоря, == проверяет, указывают ли оба объекта на одно и то же место в памяти, тогда как .equals() сравнивает значения в объектах. 3. Если класс не переопределяет метод equals, то по умолчанию он использует метод equals ближайшего родительского класса, который переопределил этот метод. #java Подписывайтесь на канал 👉@cod_academy

Функция all_of Эта функция работает со всем диапазоном элементов массива и может сэкономить время на запуск цикла для проверк
Функция all_of Эта функция работает со всем диапазоном элементов массива и может сэкономить время на запуск цикла для проверки каждого элемента по одному. Она проверяет заданное свойство для каждого элемента и возвращает true, когда каждый элемент в диапазоне удовлетворяет указанному свойству, иначе возвращает false. В приведенном выше коде отрицательный элемент -6 отрицает условие и возвращает false. #cpp Подписывайтесь на канал 👉@cod_academy

Библиотека JmesPath Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в слов
Библиотека JmesPath Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в словарь. Также мы разобрали полезную библиотеку json, поэтому еще раз говорить о ней не будем. Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение) JmesPath облегчает работу в несколько раз. Вместо file['a']['b']['c'] можно написать jmespath.search('a.b.c', file). Кажется стало длиннее, но это потому что мы взяли мало элементов, и согласитесь a.b.c выглядит лучше. Даже отредактировать в случае чего будет проще. #python Подписывайтесь на канал 👉@cod_academy

Программа на Java, убирающая все переносы в строке Для замены всех переносов («\n») можно использовать функцию replace(). Str
Программа на Java, убирающая все переносы в строке Для замены всех переносов («\n») можно использовать функцию replace(). String replace() возвращает новый объект String, который содержит ту же последовательность символов, что и исходная строка, но с замененным символом. Таким образом с помощью функции replace() можно заменять любые символы в строке на нужные. #java Подписывайтесь на канал 👉@cod_academy