Pyperclip
Модуль
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер
Подписывайтесь на канал 👉@pythonofff
Модуль
pyperclip
имеет функции copy()
и paste()
, которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер
pip
.Подписывайтесь на канал 👉@pythonofff
Как легко отсортировать объект по нескольким ключам?
Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям.
Решить эту задачу можно очень просто с помощью
Подписывайтесь на канал 👉@pythonofff
Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям.
Решить эту задачу можно очень просто с помощью
operator.itemgetter()
. В результате все бренды сгруппированы и отсортированы по возрасту.Подписывайтесь на канал 👉@pythonofff
Дизассемблирование
Встроенный модуль
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Подписывайтесь на канал 👉@pythonofff
Встроенный модуль
dis
позволяет декомпилировать написанную вами программу в байт-код Python.На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Подписывайтесь на канал 👉@pythonofff
Немного про цифры и юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
int
, unicode.isdecimal
и даже re.match
. Предупрежден – значит вооружен.Форматирование строк
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора
В Python 2.6 появился метод
Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора
%
. Написание %s
и %d
зависит от того, что мы туда передаем и что хотим увидеть в итоге, но это уже тема отдельного поста.В Python 2.6 появился метод
.format()
с немного отличающимся синтаксисом от существующего оператора %
. К слову, этот метод активно используется и по сей день, в отличии от его предшественника.Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
Объединение словарей в python.
Начиная с Python 3.5 можно легко объединить словари. Будьте осторожны, если ключи будут пересекаться, то вы можете потерять данные.
С версии 3.9 объединение становится еще легче. Пример.
Подписывайтесь на канал 👉@pythonofff
Начиная с Python 3.5 можно легко объединить словари. Будьте осторожны, если ключи будут пересекаться, то вы можете потерять данные.
С версии 3.9 объединение становится еще легче. Пример.
Подписывайтесь на канал 👉@pythonofff
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
Подписывайтесь на канал 👉@pythonofff
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
key
функции sorted
для указания функции, которая будет вызываться на каждом элементе до сравнения.Подписывайтесь на канал 👉@pythonofff
Списковые включения.
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Метод
Подписывайтесь на канал 👉@pythonofff
#collections #counter
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Counter
из библиотеки collections
.Метод
Counter.most_common(x)
возвращает x
кортежей, в которых первое значение – элемент, а второе – количество его повторений. Подписывайтесь на канал 👉@pythonofff
#collections #counter
Получаем срез из бесконечного генератора
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
Чтобы получить желаемый срез, импортируем модуль
Подписывайтесь на канал 👉@pythonofff
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
fib
, уже немного знакомый вам по посту, где мы использовали lru_cache
, правда там была рекурсивная функция. Этот генератор позволяет (за неимением другого слова) "генерировать" числа из последовательности Фибоначчи.Чтобы получить желаемый срез, импортируем модуль
itertools
, в котором уже есть удобная функция islice
, позволяющая осуществить срез генератора fib. Подписывайтесь на канал 👉@pythonofff
Функция zip
Функция
Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функция
zip
создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for
или, например, выполнять параллельную сортировку. Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функции all и any.
Названия этих функций говорят сами за себя. Функция
Подписывайтесь на канал 👉@pythonofff
Названия этих функций говорят сами за себя. Функция
all
проверяет все ли элементы последовательности истинны. А функция any
проверяет наличие хотя бы одной истинны. Посмотреть пример в онлайн редакторе. Подписывайтесь на канал 👉@pythonofff
Свап значений переменных.
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Легкая проверка на анаграммность.
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Counter
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Функция reduce
Модуль
Таким образом, в примере выше
Подписывайтесь на канал 👉@pythonofff
#функции #reduce
Модуль
functools
позволяет хорошо раскрыть функциональные возможности Python. Например, в functools
есть интересная функция reduce
, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce
умножает 1 на 2, затем результат этого умножения на 3 и так далее. Подписывайтесь на канал 👉@pythonofff
#функции #reduce
Вывод значения по умолчанию для отсутствующего ключа словаря
Обращение к несуществующему ключу словаря вызывает исключение. Избежать этого можно, вызывая метод
#codeexample
При создании собственного типа данных на основе словарей обратите внимание на метод
Подписывайтесь на канал 👉@pythonofff
Обращение к несуществующему ключу словаря вызывает исключение. Избежать этого можно, вызывая метод
get
. В указанном случае метод выдает None (по умолчанию) или заданное значение аргумента.#codeexample
d = {'a':1, 'b':2}
print(d.get('c'))
print(d.get('c', 3))
# На выходе:
None
3
При создании собственного типа данных на основе словарей обратите внимание на метод
__missing__
для возвращения аргумента при отсутствии ключа:
class MyDict(dict):
def _missing_(self, key):
return key
D = MyDict(a=1, b=2)
print(D)
print(D['a'])
print(D['c'])
# На выходе:
{'a': 1, 'b': 2}
1
c
Подписывайтесь на канал 👉@pythonofff
Искусственная нейронная сеть с нуля на Python c библиотекой NumPy
В туториале показано, как с нуля построить искусственную нейронную сеть на Python с помощью библиотеки NumPy. Сеть будет классифицировать изображения из датасета Fruit360.
Подробнее
Подписывайтесь на канал 👉@pythonofff
В туториале показано, как с нуля построить искусственную нейронную сеть на Python с помощью библиотеки NumPy. Сеть будет классифицировать изображения из датасета Fruit360.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Транспонирование двумерного массива данных
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией
Также, прошу вас реакциями проголосовать какой стиль скриншотов с кодом вам больше нравится. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией
zip
Также, прошу вас реакциями проголосовать какой стиль скриншотов с кодом вам больше нравится. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Вирус локер на Python и Tkinter
Локер – популярный вид вирусов, который блокирует компьютер, и чаще всего злоумышленники просят что-либо взамен на разблокировку. Обычно локер еще шифрует все файлы на компьютере, но мы такого делать не будем.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Локер – популярный вид вирусов, который блокирует компьютер, и чаще всего злоумышленники просят что-либо взамен на разблокировку. Обычно локер еще шифрует все файлы на компьютере, но мы такого делать не будем.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Назначение функций по условию
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с
Интерпретатор выполняет выражение
Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с
if
:A = Y if X else Z
Интерпретатор выполняет выражение
Y
, если объект X
– True
, и Z
, если X
– False
.Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
Красивый вывод
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав
Подписывайтесь на канал 👉@pythonofff
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав
print = pprint.pprint
Выше приведен пример кода. Вы можете самостоятельно поэкспериментировать с модулем. Подписывайтесь на канал 👉@pythonofff