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

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

Open in Telegram

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

Show more
1 949
Subscribers
No data24 hours
-97 days
-2830 days
Posts Archive
Что такое volatile переменная? Ключевое слово volatile используется в многопоточном программировании для обеспечения безопасности потока, поскольку модификация одной изменяемой переменной видна всем другим потокам, поэтому одна переменная может использоваться одним потоком за раз. При помощи ключевого слова volatile можно гарантировать, что переменная будет потокобезопасна и будет храниться в общей памяти, и потоки не будут ее брать себе в свой кеш. Как это выглядит? private volatile AtomicInteger count; Просто добавляем к переменной volatile. Но это не говорит о полной потокобезопасности… Ведь операции могут быть не атомарны над переменной. Но можно использовать Atomic классы, которые делают операцию атомарно, то есть за одно выполнение процессором. Таких классов можно много найти в пакете java.util.concurrent.atomic. #java Подписывайтесь на канал 👉@cod_academy

Быстрая сортировка Отсортируйте заданный массив с помощью быстрой сортировки. Формат входных данных: Первая строка входных да
Быстрая сортировка Отсортируйте заданный массив с помощью быстрой сортировки. Формат входных данных: Первая строка входных данных содержит одно натуральное число nn (1 ≤ n ≤ 10^5) – количество элементов в массиве. В следующей строке находятся элементы массива – n целых чисел, не превосходящих по абсолютной величине 10^9. Формат выходных данных: Выведите элементы массива в порядке неубывания. #cpp Подписывайтесь на канал 👉@cod_academy

Итерирование с использованием функции enumerate Функция range позволяет получить только индексы элементов списка. Функция enu
+1
Итерирование с использованием функции enumerate Функция range позволяет получить только индексы элементов списка. Функция enumerate генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. Эти кортежи можно распаковать еще в заголовке for Получается короткий и понятный код! В примере разберем как извлечь из списка элементы и их индекс, рис.1. Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2. #python Подписывайтесь на канал 👉@cod_academy

JSON, сериализация JSON – невероятно удобный и полезный синтаксис для хранения и обмена данными. Java полностью поддерживает
JSON, сериализация JSON – невероятно удобный и полезный синтаксис для хранения и обмена данными. Java полностью поддерживает его. В данном примере кода рассмотрим пример сериализации данных. #java Подписывайтесь на канал 👉@cod_academy

Структура представлена в виде массива f, в котором f[i] – сумма всех элементов от F[i] до i. Функция F(x) связана с битовым п
Структура представлена в виде массива f, в котором f[i] – сумма всех элементов от F[i] до i. Функция F(x) связана с битовым представлением аргумента. Вкратце можно описать так: F(x) заменяет группу единичных битов, находящихся в конце числа (младших) на нули. Если x заканчивается на нулевой бит, то F(x) = x. В битовых операциях F(x) задаётся так: F(x) = x & (x + 1). Нам понадобятся три функции: прибавление x к элементу с индексом i, получение суммы дерева от 0до xи получение суммы на [a..b]. #cpp Подписывайтесь на канал 👉@cod_academy

Как перевести символ в ascii на python? Вы можете использовать метод .ord() для перевода символа в ascii. char = "T" print(or
Как перевести символ в ascii на python? Вы можете использовать метод .ord() для перевода символа в ascii. char = "T" print(ord(char)) #python Подписывайтесь на канал 👉@cod_academy

Какие преимущества есть у многопоточности? 1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами; 2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо; 3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти; 4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков. #java Подписывайтесь на канал 👉@cod_academy

Инициализация в двоичной форме В C++ 11 присваивания также могут выполняться в двоичной форме. #cpp Подписывайтесь на канал �
Инициализация в двоичной форме В C++ 11 присваивания также могут выполняться в двоичной форме. #cpp Подписывайтесь на канал 👉@cod_academy

Модуль zipfile Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны
Модуль zipfile Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего. Для начала надо из zipfile импортировать ZipFile. И открыть файл ZipFile(file). printdir() - вывод списка содержимого текстом для печати. namelist() - вывод списка фалов списком. open() - открыть файл внутри архива, далее работа проходит аналогично работе фалов. Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве. Больше возможностей можно узнать через help() или документацию. #python Подписывайтесь на канал 👉@cod_academy

Где и для чего используется модификатор abstract? Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов. Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным. Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение. #java Подписывайтесь на канал 👉@cod_academy

Дерево Фенвика Довольно простая и быстрая, но совсем не очевидная в плане идеи и понимания структура данных. Позволяет находить сумму на префиксе и изменять отдельные элементы за O(log n). В следующем посте — реализация на C++. #cpp Подписывайтесь на канал 👉@cod_academy

Модуль shutil Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говори
Модуль shutil Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться. Программисты комбинируют os и shutil для достижения наиболее красивого и эффективного кода. shutil.copyfileobj(fsrc, fdst) - копирует один файл в другой. shutil.copymode(fsrc, fdst) - копирует права доступа из одного файла в другой. shutil.copystat(fsrc, fdst) - копирует дату последнего доступа и изменения из одного файла в другой. Библиотека позволяет так же работать с архивами shutil.get_archive_formats(), чтобы узнать доступные для работы архивы. #python Подписывайтесь на канал 👉@cod_academy

Быстрое умножение или деление на 2 Умножение на 2 означает сдвиг всех битов влево, а деление на 2 означает сдвиг вправо. Напр
Быстрое умножение или деление на 2 Умножение на 2 означает сдвиг всех битов влево, а деление на 2 означает сдвиг вправо. Например: 2 (Двоичный 10): сдвиг влево(умножение) дает 4 (Двоичный 100) и вправо(деление) дает 1 (Двоичный 1). #java Подписывайтесь на канал 👉@cod_academy

Сортировка пузырьком Определите, сколько обменов сделает алгоритм пузырьковой сортировки по возрастанию для данного массива.
Сортировка пузырьком Определите, сколько обменов сделает алгоритм пузырьковой сортировки по возрастанию для данного массива. Формат входных данных: На первой строке дано целое число n (1 ≤ n ≤ 1000) – количество элементов в массиве. На второй строке – сам массив. Гарантируется, что все элементы массива – различные целые числа, не превышающие по модулю 10^9. Формат выходных данных: Выведите одно число – количество обменов пузырьковой сортировки. #cpp Подписывайтесь на канал 👉@cod_academy

Обработка строки Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использо
Обработка строки Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использованием метода вместо перебора списком. Перечислим наиболее полезные методы: capitalize() - первая буква большая, остальные маленькие strip() - удаление пробелов в начале и конце center(int, chr='') - отцентрирует текст, int - нужное кол-во символов в строке, а chr - символ для добавления в начало и конец swapcase() - заглавные буквы в прописные, маленькие в большие lower() - преобразует к нижнему регистру upper() - преобразует к верхнему регистру При написании нейронок и ботов обязательно приводите все к нижнему регистру с помощью lower(). При написании ботов часто использую center(), для красивого вывода. #python Подписывайтесь на канал 👉@cod_academy

Вычисление количества цифр числа Чтобы вычислить количество цифр в числе, вместо цикла мы можем эффективно использовать log.
Вычисление количества цифр числа Чтобы вычислить количество цифр в числе, вместо цикла мы можем эффективно использовать log. #java Подписывайтесь на канал 👉@cod_academy

Автовыведение типа Несмотря на то, что ключевое слово auto было введено еще в C++11, многие программисты продолжают его игнор
Автовыведение типа Несмотря на то, что ключевое слово auto было введено еще в C++11, многие программисты продолжают его игнорировать. А ведь автовыведение позволяет экономить время и делает код лаконичным. Увидеть преимущества можно даже на примере стандартных типов STL. #cpp Подписывайтесь на канал 👉@cod_academy

Как парсить сайты с авторизацией на python? Для парсинга сайтов с авторизацией, Вы можете воспользоваться selenium #python По
Как парсить сайты с авторизацией на python? Для парсинга сайтов с авторизацией, Вы можете воспользоваться selenium #python Подписывайтесь на канал 👉@cod_academy

Вычисление количества цифр числа Чтобы вычислить количество цифр в числе, вместо цикла мы можем эффективно использовать log.
Вычисление количества цифр числа Чтобы вычислить количество цифр в числе, вместо цикла мы можем эффективно использовать log. #java Подписывайтесь на канал 👉@cod_academy

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