Hello World – Telegram
Hello World
1.68K subscribers
71 photos
6 videos
3 files
161 links
Be so good that you cannot be ignored. And then, go one step beyond.
Download Telegram
Что выведет следующий код?
Anonymous Quiz
39%
SyntaxError
13%
01234
22%
01234end
25%
0234end
Проверка на анаграммность

Проверить, являются ли строки анаграммами (например, в результате случайной перестановки букв) поможет класс Counter модуля collections.

Посмотреть код

#string #collections
Запрос пароля во время выполнения программы

Этот простой пакет позволяет запрашивать у пользователя его пароль, а также получать его имя (под которым он вошёл в систему).

Правда, при работе с паролями стоит знать о том, что не все системы поддерживают скрытие паролей. Python постарается вас об этом уведомить. Если это произойдёт – вы увидите соответствующее предупреждение в командной строке.

Посмотреть код

#tips
Загрузка модели в Keras

Библиотека Keras позволяет сохранять модель в такие форматы как YAML и json, однако гораздо удобнее (и нативнее, если можно так выразиться) сохранять модель в формат H5 (hdf5).

Данный формат позволяет сохранить:

📌 Веса модели
📌 Ее архитектуру
📌 loss и metrics

✏️ Для работы с этим форматом вам необходимо установить модуль h5py

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

Посмотреть код

#Keras #NN
Помните такой тупой мем: бесплатный wi-fi, но паролем является правильно посчитанный интеграл.

Навскидку, чему равен ответ?
Интеграл из предыдущего поста можно легко посчитать, если заметить что вклад первого слагаемого равен нулю (нечетная функция интегрируется в симметричных пределах). Остальное берется заменой x = 2*sin(φ).

Правильный ответ: π

Можно посчитать это численно, с помощью пакета sympy. Это библиотека для символьной математики. Для этого импортируем Symbol, integrate и sqrt.

Далее синтаксис очень сильно напоминает Wolfram Mathematica. Просто передаем в integrate функцию и кортеж с пределами.

Посмотреть код

#sympy
Нахождение близких соответствий в строках

Предположим, вы попали в ситуацию, когда вам понадобилось, задействуя концепцию наподобие расстояния Левенштейна, найти в списке слова, похожие на некую входную строку. Решить эту задачу можно с помощью built-in модуля difflib.

Данный метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент задаёт список, в котором выполняется поиск.

Также в метод можно передать необязательный аргумент n, который задаёт максимальное число возвращаемых совпадений.

Посмотреть код
Кэширование результатов вызова функций с помощью декоратора

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

Думали ли вы при этом о том, что таким функциям не повредило бы кэширование результатов? Кэшировать результаты вызова функции можно с помощью декоратора lru_cache из модуля functools.

В этом примере мы выполняем GET-запросы, результаты которых кэшируются (кэшировано может быть до 32 результатов). Тут можно увидеть и то, что мы получаем сведения о кэше функции, воспользовавшись методом cache_info.

Посмотреть код

#functools
Нахождение часто встречающихся элементов в списке

📌 Нахождение в списке таких элементов, которые встречаются в нём чаще других, это весьма распространённая задача. Решить её можно, например, воспользовавшись циклом for и словарём, в котором будут собраны сведения о количестве одинаковых элементов.

📌 Но такой подход – это конечно пустая трата времени. Решать подобные задачи можно с помощью класса Counter из модуля collections.

✏️ Counter по сути основан на словаре, хранящем соответствия элементов и количества их вхождений в список. Поэтому соответствующий объект можно использовать как обычный dict.

Посмотреть код

#collections
Очистка входных строковых данных

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

📌 Иногда данные можно очистить с помощью регулярного выражения.

📌 Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. Здесь пробельные символы "\n" и "\t" заменяются на обычные пробелы, а символ "\r" удаляется из строки полностью.

✏️ Это – простой пример, но мы можем его расширить, создавая таблицы переназначения символов с использованием пакета unicodedata и его функции combining().

Такой подход позволяет убирать из строк всё то, что там не нужно.

Посмотреть код

#tips
Что будет выведено в функции print?
Выберите правильный ответ👇
comp3321_red.pdf
18.5 MB
курс от АНБ по Python

В прикрепленном файле вы найдете немного отредактированную четырехсотстраничную распечатку учебного курса COMP 3321 по Python, который преподается в АНБ.

Данный курс содержит краткое введение в Python от его создателя Гвидо ван Россума и объясняет, для чего этот язык подходит лучше всего, например, для автоматизации задач, создания веб-приложений или проведения углубленных математических исследований.
Объявление нескольких конструкторов в классе

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

📌 Хотя в Python нельзя перегрузить обычную функцию, можно пользоваться чем-то вроде перегрузки конструкторов с использованием методов класса.

📌 Конечно, вместо использования методов класса, можно поместить всю логику альтернативных конструкторов в __init__ и решить задачу с использованием *args**kwargs и множества выражений if.

✏️ В результате может получиться рабочий код, но этот код будет тяжело читать и поддерживать. Тут можно порекомендовать поместить минимум логики в __init__ и выполнить все операции в отдельных методах/конструкторах.

✏️ При таком подходе в нашем распоряжении окажется чистый код, с которым удобно будет работать и автору этого кода, и тому, кто этим кодом будет пользоваться.

Посмотреть код
Простейший парсер прокси

📌 Для реализации нам потребуется библиотека proxybroker, и одна асинхронная функция для записи в файл.

📌 С помощью переменной limit можно задавать количество адресов.

✏️ В функции grab, кроме того, можно задавать types=['HTTP', 'HTTPS']

Посмотреть код
Модуль dis и constant folding в Python 3.7

Кратко разбираем особенности constant folding в Python 3.7

Читать статью
​​Параметры в iter

📌 Обычно built-in функция iter() возвращает итератор от переданной последовательности.

📌 Однако, можно передать два параметра. В таком случае, первый параметр должен быть callable-объектом, а второй — результатом вызова первого объекта, на котором нужно остановить итерирование.

Как пример, считывание данных из файла по кускам длины 64, до первого вхождения пустой строчки.

#iter