Python: Как получить первый найденный в списке элемент

Чтобы получить первый найденный по определенному условию элемент из списка или None, если ни одного такого элемента не найдено, можно использовать следующую конструкцию:

Если результат в списке не найден, будет возвращено None

 

Как создать директорию с текущей датой в Total Commander

Для того, чтобы быстро и удобно создавать директории с именем состоящим из текущей даты средствами Total Commander:

  1. Создадим cmd-скрипт, создающий директорию с нужным именем:

В первой строчке скрипта формируется имя для директории в формате YYYY.MM.DD.

Вторая строчка скрипта создает директорию с указанным именем по пути, переданном во входящем параметре %1.

Как узнать текущую версию Python?

Для того, чтобы узнать, какая версия интерпретатора Python используется для выполнения кода, можно воспользоваться командой version_info из модуля sys:

В текущем примере используется версия Python 3.5.2.

Автоматическое создание точек восстановления Windows по расписанию

Создание точек восстановления Windows — хороший способ помочь в восстановлении своего компьютера в случае возникновения каких-либо неприятностей вроде заражения вирусами или рекламными ботами.

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

Если вы случайно открыли какое-нибудь подозрительное вложение в почте, и теперь то и дело на экране появляются рекламные баннеры (в систему установился рекламный бот) — с помощью точек восстановления можно вернуть систему «в прошлое», до момента заражения ботом. Точки восстановления — не панацея абсолютно от всех неприятностей, но очень часто «откат» системы спасает положение и возвращает компьютер в рабочее состояние.

Python: Как получить список классов из модуля (*.py — файла)

Список классов, определенных в *.py — файле можно получить с помощью встроенного модуля inspect.

Например для модуля test_cls:

можно получить список классов следующим образом:

 

PHP: Как сохранить HTML в DOC

При разработке онлайн-проектов часто возникает необходимость сохранить html-страничку в виде документа, который можно использовать отдельно, например, отправить по электронной почте, просматривать и редактировать оффлайн. Удобным способом сохранения html таким образом является экспорт в один из наиболее часто используемых текстовых форматов — doc.

Для экспорта html документа в формат doc можно воспользоваться открытым бесплатным php-модулем «html_to_doc». С его помощью можно сохранить html в документ doc, который будет корректно обработан текстовым редактором MS Word. Если в html-страничке присутствуют изображения, они будут встроены в документ doc.

PHP-модуль можно скачать по адресу https://github.com/Korchy/html_to_doc

Python: Как пройти по элементам списка попарно от текущего к следующему

Если имеется список вида:

Для того, чтобы пройти по элементам списка попарно от текущего к следующему, можно использовать такой код:

Результат выполнения:

 

Python: Как передать список аргументов в функцию, принимающую переменное число аргументов

Некоторые функции принимают в параметрах переменное число аргументов *args, как например функция перебора вариантов itertools.product.

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

 

Python: Как преобразовать строку со смешанными диапазонами чисел в список

Преобразование смешанной строки, в которой заданы, как отдельные числа, так и диапазоны чисел, в полный список значений можно сделать следующим образом:

Пусть имеется исходная строка

Разобьем строку по разделителю — запятым:

Разделим получившийся список на два списка. В первый список поместим только отдельные значения. Во второй — значения преобразованные из диапазонов чисел.

Объединим полученные списки в один и выкинем повторяющиеся значения.

Полный код преобразования:

 

PHP: Как получить полное имя класса с учетом статического наследования

PHP поддерживает механизм позднего статического связывания. Полное имя класса с учетом статического наследования можно получить с помощью вызова функции:

На примере:

 

Python: как сделать сдвиг значений в списке

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

Сдвиг для списка lst:

сдвиг вперед:

сдвиг назад:

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

Как узнать версию linux Debian

Чтобы узнать установленную на сервере версию linux Debian нужно в командной строке набрать:

Ответ linux будет следующим:

Python: Как сохранить словарь (dict) с объектами в json

Для того, чтобы объекты из словаря сохранялись в json в удобном для просмотра виде, каждый класс объекта должен иметь функцию __repr__, возвращающую текстовое представление объекта.

Пример словаря с объектами:

Сохранение словаря с объектами в json:

 

Python: как добавить кортеж в кортеж

Кортежи в python могут быть вложенными.

Если просто добавить один кортеж к другому через операцию конкатенации «+», python сольет значения кортежей:

Для того, чтобы добавляемый кортеж стал вложенным, нужно после добавляемого кортежа поставить запятую «,»

 

Python: Как найти центр многоугольника

Получение координат центральной точки выпуклого многоугольника (полигона), так называемого «центроида», если известны координаты его точек (вершин):

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

 

Что нужно, чтобы начать работать с Git и GitHub

Системы управления и контроля версий на сегодня практически обязательны для любого проекта. Одной из известнейших и наиболее популярных систем управления версиями является Git. Рассмотрим работу с Git в связке с GitHub — крупнейшим хостингом для размещения IT-проектов совместной разработки. GitHub позволяет бесплатно размещать на своем сервере проекты с открытым исходным кодом.

В данном примере рассматривается работа с Git на операционной системе Windows.

Что же нужно, для того, чтобы начать практическую работу с Git:

  1. Скачать дистрибутив Git для windows:
  2. Провести установку Git на компьютер пользователя
    1. все опции в процессе инсталляции можно оставить в значениях «по умолчанию»

Счетчик цикла for в Python не имеет локальной области видимости

Одной из особенностей циклов for в Python является то, что итерируемая переменная (счетчик) не относится к локальной области видимости цикла.

Например, после исполнения следущего участка кода:

Переменная a, объявленная до цикла for, изменит свое значение, если в качестве счетчика цикла объявить переменную с таким же именем «a».

При построении кода об этой особенности нужно обязательно помнить, во избежание записи в ранее объявленную переменную значений итераторов цикла for.

Получение времени выполнения участка кода на PHP

Для того, чтобы замерить, сколько времени уходит на выполнение участка кода, нужно заключать проверяемый код в следующую конструкцию:

Результат выполнения примера — вывод на экран:

Выполнено за: 8.9997079372406 сек.

 

Как создавать символические ссылки с помощью Total Commander

Символические ссылки в Windows, начиная с версии Vista, создаются с помощью команды mklink.

Для того, чтобы сделать в Total Commander кнопку, создающую символическую ссылку на выделенный файл, нужно выполнить следующие шаги:

  1. В удобном месте, например в подкаталоге плагинов c:\TotalCommander\Plugins\ создать командный файл mklink.cmd со следующим содержанием:

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

  1. Перетащить этот файл на панель Total Commander, создав тем самым для него вызывающую кнопку.
  2. Нажать на ней правой кнопкой мышки и выбрать «Изменить…»
    1. В поле «Параметры» указать:

Сохранить изменения.

%P — путь к файлу под курсором в активной панели

%N — имя файла под курсором в активной панели

%T — путь к месту, открытому во второй (неактивной) панели

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

Python — многострочное комментирование в PyCharm

В языке Python не предусмотрено внутреннего синтаксиса для многострочного комментирования кода (наподобие /* … */ в других языках). Есть два варианта обхода этой проблемы:

  1. Использовать в качестве комментариев синтаксис многострочного литерала: ′′′

Минут данного метода в том, что подобный комментарий остается строковой константой и встраивается в конечный код.

  1. Если для написания кода используется IDE PyCharm можно выделить несколько строк и нажать комбинацию клавиш: Ctrl + /

Для снятия комментария со строк, нужно нажать ту же самую комбинацию клавиш на выделенных закомментированных строчках повторно.

Плагин к WordPress TinyMCE Advanced Editor — установка начального значения нумерованного списка

Небольшая доработка плагина к WordPress TinyMCE Advanced Editor. Дополнительная кнопка по клику позволяющая задавать начальное значение для нумерованного списка.
Собственно добавляет атрибут start = N к тегу OL.

Пример использования плагина
Пример использования плагина

Автоматическая установка фокуса на flash-приложение в браузере

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

Переход с Adobe CS3 на FlashDevelop

FlashDevelop принято хвалить. Считается, что это лучшая на сегодня среда для разработки flash-приложений. На самом же деле серьезных причин перехода всего полторы:
1. Бесплатность. Если лицензия на CS3 принадлежит не вам, а предприятию, на котором вы работаете, или же вовсе вам не принадлежит: бесплатность — весомый довод в пользу перехода.
2. Вроде бы (догнав проект на CS3 до 300+ классов я еще не сталкивался с этой проблемой) компилятор CS3 не любит больших проектов, сбоит, ссылаясь на недостаток памяти.
На этом все. Все остальные причины, которые обычно превозносят (автокомплит, автоимпорт, подстветка, переходы по классам), охватывает одно определение: личное удобство. Все перечисленное — это удобство набивания кода. Обычно же в любом проекте 90% времени занимает не долбление по клавишам, а отладка, поиск ошибок и мучительные размышления «ЧЯДНТ?».
Мое личное мнение: если вы не столкнулись с проблемой платности среды или недостатка памяти компилятора, и вас все устраивает в работе в CS3 — заморачиваться с переходом на FlashDevelop не стоит.
Если же вы столкнулись с двумя перечисленными причинами, или просто хотите улучшить удобство работы с кодом, практические заметки о переносе рабочего проекта с CS3 на FlashDevelop: