Академия Кода – Telegram
Академия Кода
2K subscribers
673 photos
2 videos
2 files
50 links
Академия кода. Полезный контент по программированию. По всем вопросам @evgenycarter
Download Telegram
Блок else в циклах for

Хауди хо, друзья. Практически все новички теряются при виде блока else после циклов, поэтому сейчас немного проясним ситуацию.

В Python блок else может быть представлен не только в условных конструкциях после if, но и в циклах после for и while. В данном случае код внутри else выполняется, только если цикл не был прерван с помощью break.

Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова break при нахождении, как показано на картинке. Исходный код текстом можете найти в нашем чате.
#python

Подписывайтесь на канал 👉@cod_academy
👍2
Трюки с логарифмом

Функцию log тоже можно использовать для ряда изящных решений.
#cpp

Подписывайтесь на канал 👉@cod_academy
👍1
Ссылки в C++

Когда переменная объявляется как ссылка, она становится альтернативным именем для существующей переменной. Переменную можно объявить как ссылку, поместив в её объявление "&".
#cpp

Подписывайтесь на канал 👉@cod_academy
👍2
Выполнение консольных команд

Java позволяет выполнять консольные команды прямо из кода, используя класс Runtime. Очень важно не забывать об обработке исключений.

Например, давайте попробуем открыть файл PDF через терминал Java (на Linux’e).
#java

Подписывайтесь на канал 👉@cod_academy
👍3
Прочитать произвольную строку из файла

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

И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле text.txt:

Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!

Чтобы вывести это на экран, может помочь функция getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально.
#python

Подписывайтесь на канал 👉@cod_academy
👍4
Прочитать произвольную строку из файла

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

И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле text.txt:

Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!

Чтобы вывести это на экран, может помочь функция getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально.

#python


Подписывайтесь на канал 👉@cod_academy
👍2
Как копировать текст в буфер обмена, используя UIPasteboard?

Вы можете писать в буфер обмена iOS и читать из него с помощью класса UIPasteboard. Для того, чтобы воспользоваться глобальным системным буфером, нужно использовать константу general. Это позволит обмениваться данными между всеми приложениями. Обычно пользователи взаимодействуют с системным буфером, используя "вырезать", "скопировать", "вставить" на выбранном контенте в UI.

В UIPasteboard можно хранить String, UIImage, URL, UIColors, но чаще всего вы будете использовать именно String. Чтобы записать или прочитать строку, достаточно просто считать или присвоить что-то переменной string.

#swift

Подписывайтесь на канал 👉@cod_academy
👍1
Метод get для словарей

У словарей есть метод get, который возвращает значение по ключу, переданному в аргументах функции.

Однако если такого ключа в словаре нет, то исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же None, если второй аргумент не передан.

В качестве примера создадим словарь с именами, которые можно получить по определенным значениям, и напишем функцию, которая возвращает приветственную фразу со взятием имени из этого словаря.

#python


Подписывайтесь на канал 👉@cod_academy
👍5
Поиск позиции для вставки числового элемента в массив

Есть небольшой интересный прием, позволяющий найти позицию, в которую запрошенный элемент может быть вставлен в отсортированный массив.

#java

Подписывайтесь на канал 👉@cod_academy
👍3
Некоторые различия между ссылками и указателями

1. Указатель может быть объявлен void, а ссылка - никогда. Пример на картинке.
2. Переменная-указатель может иметь несколько уровней вложенности, то есть, например, бывают одиночные указатели, двойные указатели, тройные указатели. Ссылка же имеет только один единственный уровень вложенности.
3. Ссылочная переменная не может быть обновлена.

#cpp

Подписывайтесь на канал 👉@cod_academy
👍2
Методы start и end

Выше представлен пример, в котором производится подсчет количества раз, когда в строке ввода встречается слово "кот".

Как видим, в данном примере используются границы слов с целью удостоверения в том, что буквы "c" "a" "t" не являются частью другого слова. Также отображаются определенные полезные сведения касательно нахождения совпадения в вводимой строке.

Метод start производит возврат начального индекса в последовательности, захваченной в данной группе в ходе предыдущей операции поиска совпадений, а end производит возврат индекса к последнему совпавшему символу, плюс один.

#java

Подписывайтесь на канал 👉@cod_academy
👍1
Сonstexpr

Допустим, у вас есть выражение, значение которого нужно вычислить и которое не будет меняться после этого. Вы можете вычислить значение заранее и использовать его как макрос. Или, как предлагает C++11, вы можете использовать constexpr.

Программисты сокращают время работы программы насколько возможно. Например, некоторые операции перекладываются на компилятор.

Код выше — довольно частый пример использования constexpr.

Так как мы объявили функцию вычисления чисел Фибоначчи как constexpr, компилятор вычислит значение fib(20) во время компиляции. Тогда после компиляции строка const long long bigval = fib(20); будет заменена на const long long bigval = 2432902008176640000.

#cpp

Подписывайтесь на канал 👉@cod_academy
👍1👎1
🎄X-MAS HACK 2022 – время исполнения желаний🎄

👨🏻‍💻Если ты кодишь – ждём тебя в секции «Хакатон» с кейсами от IT-компаний
💡Если ты настоящий генератор идей – ждём в секции «Идеатон», где ты сможешь предложить самые смелые идеи для бизнеса!

Даты хакатона: 15–18 декабря 2022 года
Дедлайн регистрации: 12 декабря 23:59

Регистрация и подробности:
⚡️Хакатон - https://clck.ru/32kc5u
Идеатон - https://clck.ru/32kc5T

Создавай команду или подавай личную заявку, а мы найдем для тебя крутую команду! Регистрируйся, решай новогодний кейс, заводи знакомства, перенимай опыт от топовых экспертов, стань частью X-MAS HACK! И кто знает.. возможно, именно ты заберешь главные призы!

💰Призовой фонд – 1.700.000 рублей!
🎁 Новогодний мерч, подарки от партнеров и сертификаты
🎅🏻 Менторская поддержка от топовых экспертов
🪄 Мастер-классы, лайфхаки и много полезных знакомств

Больше хакатонов и призов - https://clck.ru/32kc6S

#хакатон #идеатон
1
Скачиваем вебсайты целиком

Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты.

Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.

А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте.

Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц.

#python

Подписывайтесь на канал 👉@cod_academy
👍4
Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++?

В C++ ссылки более безопасны, чем указатели, потому что ссылки должны быть инициализированы, и их нельзя изменить, чтобы ссылаться на что-то другое после инициализации. Но есть исключения, когда у нас могут быть недействительные ссылки.

Но есть пара исключений, когда у нас могут быть недействительные ссылки. Они приведены на картинке.

#cpp

Подписывайтесь на канал 👉@cod_academy
👍1
Захват координат курсора

Чтобы захватить события мыши, необходимо реализовать интерфейс MouseMotionListener. Когда курсор попадает в определенную область, срабатывает обработчик события mouseMoved, из которого можно получить точные координаты.

#java

Подписывайтесь на канал 👉@cod_academy
👍2
Pyperclip

Модуль pyperclip имеет функции copy() и paste(), которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.

Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.

Установить этот модуль можно привычным способом через пакетный менеджер pip.

#python

Подписывайтесь на канал 👉@cod_academy
👍2
Алгоритм search

Ищет последовательность [first1, last1) для первого вхождения подпоследовательности, определенной [first2, last2), и возвращает итератор в свой первый элемент вхождения, или last1, если вхождения не найдены.

#cpp

Подписывайтесь на канал 👉@cod_academy
👍1
Цикл foreach

JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет последовательно пройти весь массив без использования индекса переменной.

Следующий код отображает все элементы в массиве myList.

#java

Подписывайтесь на канал 👉@cod_academy
👍1
Как легко отсортировать объект по нескольким ключам?

Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям.
Решить эту задачу можно очень просто с помощью operator.itemgetter(). В результате все бренды сгруппированы и отсортированы по возрасту.

#python

Подписывайтесь на канал 👉@cod_academy
👍1
Введение в обработку исключений

Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.

Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.

try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.

#cpp

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