Хэширование
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная (её не надо устанавливать или импортировать) функция
Однако изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выдаст ошибку.
Кстати, есть две пасхалки. Хэш бесконечности равен первым цифрам числа Пи, а хэш Not a Number равен нулю.
А ещё бывают коллизии: например, хэши чисел -1 и -2 одинаковы.
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная (её не надо устанавливать или импортировать) функция
hash(). Используется в основном для сравнения разных объектов — сравнивать хэши легче и выгоднее.Однако изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выдаст ошибку.
Кстати, есть две пасхалки. Хэш бесконечности равен первым цифрам числа Пи, а хэш Not a Number равен нулю.
А ещё бывают коллизии: например, хэши чисел -1 и -2 одинаковы.
#вопросы_с_собеседований
Какие нюансы есть в использовании чисел как ключей?
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.
Какие нюансы есть в использовании чисел как ключей?
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.
Как выполняется обработка исключений в Python?
Для обработки исключений Python предоставляет конструкцию из трех слов: try, except и finally.
Синтаксис выглядит примерно так:
На картинке представлен упрощенный пример такой конструкции. Здесь блок try терпит неудачу, поскольку мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete.
Для обработки исключений Python предоставляет конструкцию из трех слов: try, except и finally.
Синтаксис выглядит примерно так:
try:
# попробовать сделать это
except:
# если блок try не сработал, попробовать это
finally:
# всегда делать этоНа картинке представлен упрощенный пример такой конструкции. Здесь блок try терпит неудачу, поскольку мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete.
Форматируемые шаблоны строк
Модуль
Такой способ появился ещё в Python 2.4, как замена %-форматированию, но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.
Модуль
string из стандартной библиотеки содержит интересный класс Template, который позволяет вполне удобно создавать шаблоны строк для дальнейшего форматирования.Такой способ появился ещё в Python 2.4, как замена %-форматированию, но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.
Оператор continue
Оператор continue в Python используется для перевода управления программой в начало цикла. Он пропускает оставшиеся строки кода внутри цикла и запускает следующую итерацию.
В основном он используется для определенного условия внутри цикла, чтобы мы могли пропустить конкретный код для определенного условия.
Обратите внимание на вывод приведенного выше кода, значение 2 пропущено, потому что мы предоставили условие if с помощью оператора continue в цикле for. Когда он соответствует заданному условию, тогда управление передается в начало цикла for, и оно пропускает значение 2 из кода.
Оператор continue в Python используется для перевода управления программой в начало цикла. Он пропускает оставшиеся строки кода внутри цикла и запускает следующую итерацию.
В основном он используется для определенного условия внутри цикла, чтобы мы могли пропустить конкретный код для определенного условия.
Обратите внимание на вывод приведенного выше кода, значение 2 пропущено, потому что мы предоставили условие if с помощью оператора continue в цикле for. Когда он соответствует заданному условию, тогда управление передается в начало цикла for, и оно пропускает значение 2 из кода.
Календарь в Python
Существует замечательный встроенный модуль
Существует замечательный встроенный модуль
calendar, позволяющий работать с датами. Некоторые возможности, такие как проверка, високосный ли год, показаны на картинке. Для углубления в работу с модулем можно ознакомиться с документацией.Функция cv2.blur()
Вы можете размыть изображение в Python с помощью функции OpenCV cv2.blur().
Выше приводится простой пример, в котором нужно размыть изображение и сохранить его.
Ознакомиться подробнее можно здесь.
Вы можете размыть изображение в Python с помощью функции OpenCV cv2.blur().
Выше приводится простой пример, в котором нужно размыть изображение и сохранить его.
Ознакомиться подробнее можно здесь.
Как хостить телеграм-бота (и другие скрипты на Python) бесплатно 24/7
Цель этот статьи - подробная инструкция, как сделать хостинг Python-скриптов бесплатно и доступным 24/7 на примере телеграм-бота.
Смотреть статью
Цель этот статьи - подробная инструкция, как сделать хостинг Python-скриптов бесплатно и доступным 24/7 на примере телеграм-бота.
Смотреть статью
Находим общие ключи в двух словарях
В этом примере мы используем метод
Обратите внимание, что как множества, так и словари не сохраняют порядок элементов/ключей, поэтому порядок результатов может быть произвольным.
В этом примере мы используем метод
keys() для получения наборов ключей из словарей dict1 и dict2, а затем применяем оператор & для нахождения общих ключей.Обратите внимание, что как множества, так и словари не сохраняют порядок элементов/ключей, поэтому порядок результатов может быть произвольным.
Перебираем все возможные 8 значные пароли состоящие из букв и цифр с помощью Python
В этом примере используется модуль
Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
В этом примере используется модуль
itertools, который позволяет генерировать все возможные комбинации символов из списка characters длиной password_length. Затем перебираются все комбинации и выводятся на экран.Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
characters большое. Будьте осторожны и убедитесь, что ваше намерение соответствует законам и этическим правилам.Удаление дубликатов в словаре
Стратегия заключается в преобразовании списка словарей в список кортежей, где кортежи содержат элементы словаря.
Поскольку кортежи могут быть хешированы, вы можете удалить дубликаты с помощью set(используя здесь понимание множества , более старой альтернативой Python будет set(tuple(d.items()) for d in l)) и после этого заново создать словари из кортежей с помощью dict.
Более развернутый ответ можно найти здесь.
Стратегия заключается в преобразовании списка словарей в список кортежей, где кортежи содержат элементы словаря.
Поскольку кортежи могут быть хешированы, вы можете удалить дубликаты с помощью set(используя здесь понимание множества , более старой альтернативой Python будет set(tuple(d.items()) for d in l)) и после этого заново создать словари из кортежей с помощью dict.
Более развернутый ответ можно найти здесь.
Усыпляем программу
Иногда возникает необходимость остановить выполнение программы, чтобы можно было выполнить несколько других операций, или просто из-за требуемой утилиты. В такой ситуации может пригодиться функция sleep(), которая обеспечивает точный и гибкий способ остановки потока кода на любой период времени.
В нашем примере время начала и время окончания будут напечатаны с задержкой в 6 секунд.
Иногда возникает необходимость остановить выполнение программы, чтобы можно было выполнить несколько других операций, или просто из-за требуемой утилиты. В такой ситуации может пригодиться функция sleep(), которая обеспечивает точный и гибкий способ остановки потока кода на любой период времени.
В нашем примере время начала и время окончания будут напечатаны с задержкой в 6 секунд.
argparse
Библиотека
В данном примере мы просто выводим значения аргументов на экран, но в реальном приложении вы можете использовать их для выполнения конкретных действий, например, чтения входного файла, обработки данных и записи результата в выходной файл.
Библиотека
argparse является стандартным инструментом для обработки аргументов командной строки в Python. Она позволяет легко определить и обработать аргументы, передаваемые программе при запуске из командной строки.В данном примере мы просто выводим значения аргументов на экран, но в реальном приложении вы можете использовать их для выполнения конкретных действий, например, чтения входного файла, обработки данных и записи результата в выходной файл.
Pymorphy2
Pymorphy2 — это библиотека для морфологического анализа слов русского языка. С помощью Pymorphy2 можно определить различные грамматические характеристики слова (род, число, падеж, время и т. д.), а также получить его нормальную форму (лемму).
В этом примере мы создаем экземпляр объекта
Pymorphy2 — это библиотека для морфологического анализа слов русского языка. С помощью Pymorphy2 можно определить различные грамматические характеристики слова (род, число, падеж, время и т. д.), а также получить его нормальную форму (лемму).
В этом примере мы создаем экземпляр объекта
MorphAnalyzer и анализируем слово "котик". Затем мы используем метод parse, чтобы получить различные грамматические характеристики слова, и выводим его форму в родительном падеже единственного числа с помощью метода inflect. Результат выводится в консоль.