Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
​​Not a Number 
 
В модуле math есть особый объект, который называется NaN (Not a Number). 
 
Такие объекты не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.
​​Аргументы командой строки 
 
При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной argv во встроенном модуле sys
 
Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.
извините, забыл сначала картинку выложить :)
​​Функция reduce() 
 
Функция reduce() модуля functools кумулятивно применяет функцию function к элементам итерируемой iterable последовательности, сводя её к единственному значению. 
 
Параметры: 
  function - пользовательская функция, принимающая 2 аргумента, 
  iterable - итерируемая последовательность, 
  initializer - начальное значение.
​​Сортировка списка

Метод list.sort() сортирует элементы списка на месте восходящей способности. Чтобы настроить поведение сортировки по умолчанию, используйте дополнительный ключ Аргумент, передавая функцию, которая возвращает сопоставимое значение для каждого элемента в списке. С дополнительным логическим Обратный Аргумент, вы можете переключиться с восходящего ( Reverse = false ) до поручения убывания ( Reverse = True ).

В первой строке примера вы создаете список lst отказ затем вы разбираетесь в списке один раз, используя поведение сортировки по умолчанию и один раз, используя индивидуальное поведение сортировки только с первой буквой номера. Затем вы поменяете заказ элементов в отсортированном списке, используя Reverse = True аргумент
С помощью Python нужно записать данные в файл, но только в том случае, если файла ещё нет. Какой режим указать в инструкции open()?
Anonymous Quiz
15%
'x'
37%
Никакой. Нужна предварительная проверка os.path.exists()
41%
'w'
7%
'r'
Различие "==" и "is" в Python

- оператор "==" проверяет равенство значений двух объектов

- оператор "is" проверяет идентичность самих объектов. Его используют, чтобы
удостовериться, что переменные указывают на один и тот же объект в памяти.

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

Но стоит сделать строку длиннее и всё встаёт на свои места(длинная строка)
Деструктор

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

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

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

Деструктор противоположен конструктору. Конструктор используется для инициализации объектов, а деструктор — для удаления или уничтожения объектов, в результате чего освобождается ресурс, занятый этими объектами.
Как вставить переменную в строку в Python?

Чтобы вставить переменные в строку в Python, мы можем использовать форматированные строковые литералы.

Поместите символ f перед началом строкового литерала с одинарными или двойными кавычками, как показано на примере.
​​Глобальные переменные 
 
Глобальные переменные - это переменные, объявленные вне функции. Глобальные переменные имеют глобальную область видимости. Это означает, что к ним можно получить доступ во всей программе, в том числе в функциях.

В данном примере, переменная c была объявлена в функции mul() с помощью ключевого слова global. Ее значение умножается на 10 и становится равным 100. В процессе работы программы можно увидеть, что изменение значения внутри функции отражается на глобальном значении переменной.
​​Функция sorted()  
 
Функция sorted() возвращает новый отсортированный список итерируемого объекта (списка, словаря, кортежа). По умолчанию она сортирует его по возрастанию. 
 
Так же эта функция имеет необязательный параметр(reverse). По умолчанию сортировка выполняется по возрастанию. Если указать reverse=True, то можно отсортировать по убыванию.
А может комменты включить?
Anonymous Poll
78%
Да, я за
22%
Я против
Использование понимания списка

Понимание списка – это немного другой способ удаления элемента из списка. Он удаляет те элементы, которые удовлетворяют заданному условию.

Например – чтобы удалить четное число из данного списка, мы определяем условие как i% 2, которое даст напоминание 2 и удалит те элементы, для которых напоминание равно 2.
Kwargs

Две звездочки перед названием аргумента позволяют нам получить произвольное число произвольно названных именованных аргументов (еще их называют аргументами ключевых слов). Такую переменную часто называют kwargs (от key-word arguments). В нее будет записан словарик (dict) из пар название ключевого слова (строка) и значение аргумента.

Как видно на примере, без аргументов мы получили пустой словарь. А с именованными аргументами получили словарь, где их имена – ключи-строки, а их значения – собственно сами переданные значений. В функцию baz нельзя передать аргументы без имен, будет ошибка, потому что без имен – позиционные аргументы, а мы никак их не обозначили.
Метод remove()

Метод remove() используется для удаления указанного значения из списка. Он принимает значение элемента в качестве аргумента. Давайте разберемся в следующем примере.

Если список содержит более одного элемента с одинаковым именем, он удаляет первое вхождение этого элемента.
Как правильно добавить комментарии?
Anonymous Quiz
8%
/*комментарий*/
10%
//комментарий
hash()

hash() в Python – это целое число фиксированного размера, которое идентифицирует конкретное значение.

Если вам нужно шифровать пароли, то для этого подойдет модуль стандартной библиотеки Python hashlib.

Он включает в себя безопасные алгоритмы хеширования FIPS, такие как SHA1, SHA224, SHA256, SHA384, а также SHA512 и MD5.

Python также поддерживает функции хеширования adler32 и crc32, но они содержатся в модуле zlib. Одно из самых популярных применений хеширования это хранение хеша пароля, вместо самого пароля.

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

Существует метод быстрого создания хеша, мы рассмотрим его, когда создадим наш хеш sha512, который показан на фото.
Какой из вариантов не является законным именем переменной?
Anonymous Quiz
14%
Myvar
32%
_myvar
48%
my-var
7%
my_var