Академия Кода – Telegram
Академия Кода
2K subscribers
673 photos
2 videos
2 files
50 links
Академия кода. Полезный контент по программированию. По всем вопросам @evgenycarter
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка пузырьком

В Python уже есть встроенные функции сортировок массивов sort() и .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.

Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит. В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.

def bubble_sort(array):
for i in range(len(array), 0, -1):
for j in range(1, i):
if array[j - 1] > array[j]:
tmp = array[j-1]
array[j-1] = array[j]
array[j] = tmp
return array


Подписывайтесь на канал 👉@coddy_academy

#python
👍4👎1
Как переименовать файл через Python?

Чтобы переименовать файл, нам потребуется воспльзоваться библиотекой os и её функцией os.rename()

В данном примере мы меняем имя файла "test.txt" на "txt_file.txt"

Посмотреть пример в онлайн редакторе.

Подписывайтесь на канал 👉@coddy_academy
Привязка модели

При привязке модели page model извлекает данные из запроса HTTP, конвертирует данные в .NET и обновляет соответствующие свойства. Она включается атрибутом [BindProperty].

Подписывайтесь на канал 👉@coddy_academy

#c_sharp
👍2
Как сделать скриншот на Java?

Вы можете испольщовать Robot().createScreenCapture() чтобы сделать скриншот экрана на Java.

Посмотреть пример в онлайн редакторе.

Подписывайтесь на канал 👉@coddy_academy

#java
👍1
Привязка модели

При привязке модели page model извлекает данные из запроса HTTP, конвертирует данные в .NET и обновляет соответствующие свойства. Она включается атрибутом [BindProperty].

Подписывайтесь на канал 👉@coddy_academy

#c_sharp
👍1
Медиа-запросы

Медиа-запрос используется для адаптации верстки в зависимости от различных размеров экранов. Условия проверяют размер экрана, ориентацию, разрешение и другие свойства. Если все условия соблюдаются, все правила CSS в медиа-запросе будут применены к странице. Это позволяет адаптировать страницы к различным типам устройств, таких как ноутбуки, планшеты, телефоны.

Подписывайтесь на канал 👉@coddy_academy

#css
Резервный шрифт

Свойство font-family может иметь несколько шрифтов. Они объявляются в порядке предпочтения. В данном случае шрифты, следующие после изначального шрифта, называются резервными. Если первоначальное значение font-family не может загрузить страницу, будут использоваться резервные шрифты.

Подписывайтесь на канал 👉@coddy_academy

#css
Дочерние классы в массивах

В Java полиморфизм позволяет нам помещать экземпляры разных классов, которые имеют общий родительский класс, вместе в массив или ArrayList. Например, если у нас есть родительский класс Animal с дочерними классами Cat, Dog и Pig, мы можем настроить массив с экземплярами каждого животного, а затем перебрать список животных, чтобы выполнить одно и то же действие над каждым.

Подписывайтесь на канал 👉@coddy_academy

#java
👍1
Вариативные параметры

Вариативный параметр принимает ноль или более значений определенного типа. Он обозначается тремя последовательными точками, после типа данных параметра в декларации функции. Данный метод – хорошая альтернатива, когда для работы нам нужно только одно значение. Swift может конвертировать одно значение в набор переменных.

Подписывайтесь на канал 👉@coddy_academy

#swift
Ленивые итерации

Мы используем ленивые/отложенные итерации в функциональном программировании для более эффективной работы с памятью. Итератор срабатывает только тогда, когда требуется следующее значение. В данном примере вызов следующего четного числа произойдет с помощью next(evens).

Подписывайтесь на канал 👉@coddy_academy

#python
Добавление строк с помощью SQLite

Для добавления множества строк/записей данных в базу данных SQLite используется метод .executemany(). Новые строки должны соответствовать исходной схеме базы данных. В последней строке присутствует список вопросительных знаков, они выступают как плейсхолдер. Они представляют каждое из пяти полей в базе данных, куда мы вставляем значения.

Подписывайтесь на канал 👉@coddy_academy

#python
👍2
Параметры In-Out

В Swift аргументы функции – константы. В результате этого невозможно изменить значение параметра, которое передается в функцию. Параметр in-out позволяет функции переназначить значение переменной. Для этого параметр помечается inout, используется & при передаче параметра в вызов функции.

Подписывайтесь на канал 👉@coddy_academy

#swift
👍1
Цветовая модель HSL

HSL-модель является предпочтительной для работы с цветом. Ключевые слова дают нам ограниченное число опций, а hex-коды, как и RGB, не позволяют интуитивно корректировать цвет, например, яркость. Первое значение – hue (само значение цвета). Второе – насыщенность. Третье – яркость.

Подписывайтесь на канал 👉@coddy_academy

#css
👍1
Hooks

Хуки – это функции, которые позволяют “зацепиться” за состояние и функциональность жизненного цикла в компонентах функции. Вызывать их можно только из функции React, на верхнем уровне, чтобы убедиться, что хуки вызываются в одинаковом порядке каждый раз во время рендера компонента. Не стоит вызывать внутри циклов, условий.

Подписывайтесь на канал 👉@coddy_academy

#javanoscript
👍1
Как объединить массивы в Ruby?

Вы можете использовать concat() метод, чтобы объединить один массив в другой на Ruby, посмотрите код как пример.

Подписывайтесь на канал 👉@coddy_academy

#ruby
👍1
Гистограмма

Гистрограмма – график, визуализирующий распределение выборок в наборе данных. Гистограмма показывает частоту по вертикальной оси, а по горизонтальной оси другое измерение. Обычная горизонтальная ось имеет бункеры, где у каждого бункера есть минимальное и максимальное значение. Также имеет частоту между Х и бесконечностью.

Подписывайтесь на канал 👉@coddy_academy

#python
👍2
Строки в Java

Это объекты, которые внутренне являются массивом символов. Поскольку массивы неизменяемы (не могут расти), строки также неизменны. Каждый раз, когда в String вносятся изменения, создается совершенно новый объект String.

Подписывайтесь на канал 👉@coddy_academy

#java
👍4👎1
Делаем GIF из видео

Преобразуем видео в GIF просто и элегантно. Видео нужно сохранить в папку со скриптом, там же появится гифка. У пакета также есть дополнительная функциональность, позволяющая менять разрешение и изменять отрезки времени для гифки. Документацию можно найти по ссылке: https://pypi.org/project/moviepy/

Подписывайтесь на канал 👉@coddy_academy

#python
👍2
Clone

По умолчанию protected – потому что универсальной реализации нет, а вызов приведет к CloneNotSupportedException. Нужно писать свою реализацию, делать при этом ее public и добавлять классу интерфейс Cloneable. Подразумевается что этот метод делает «глубокое копирование», то есть поля-ссылки копи будут вести на копии полей оригинала. Это диктуется соглашением, по которому клон не должен зависеть от оригинала.

По контракту клон должен быть другим объектом (!= оригиналу). Рекомендуется, чтобы все классы иерархии реализовывали Cloneable, реализация метода начиналась с super.clone() (если родитель не Object), а результат был equals и имел тот же класс что и оригинал.

Альтернативы (многие считают что более удобные) метода clone - конструктор копирования и паттерн factory method. Всё, что нужно знать о копировании объектов в Java можно найти в Effective Java Item 11.

Подписывайтесь на канал 👉@coddy_academy

#java
👍2
Фабричный метод

В библиотеке react-navigation все навигаторы создаются фабричным методом, используя паттерн названия create<type>Navigator(). Возвращается объект со свойствами Navigator и Screen. Эти свойства – уникальные компоненты, их нужно использовать при рендере структуры навигации.

Подписывайтесь на канал 👉@coddy_academy

#javanoscript
👍5
Полиморфизм

В С++ полиморфизм происходит, когда производный класс перезаписывает унаследованный метод из базового класса с одинаковым именем. Полиморфизм присуждает методу различные “формы”. От типа вызываемого объекта зависит, какая выполняется форма.

Подписывайтесь на канал 👉@coddy_academy

#c_plus
👍2