Python Community
12.9K subscribers
1.24K photos
35 videos
15 files
731 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Ответ на предыдущую задачу
⚡️ Обфускация кода

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

Установка: pip install pyarmor

Запускается этот инструмент из терминала. Обо всех командах можно почитать в документации, нам же потребуется только obfuscate.

Вводим pyarmor obfuscate file.py и файл станет таким же непонятным, как на картинке выше. Если стало интересно, советую начать изучение тут.

#миниурок #pyarmor
Что выведет код выше?
Anonymous Quiz
7%
[]
43%
[3]
5%
[1, 2]
38%
[1, 2, 3]
7%
Узнать ответ
⚡️ Выводим строку прогресса

Запустил программу, сидишь, и думаешь: «Она работает? Может зависла? Сколько ещё осталось?». Чтобы избежать таких вопросов, стоит воспользоваться модулем progressbar.

Установка: pip install progressbar2

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

Настраивается это всё с помощью виджетов. Также поддерживаются множество анимаций, о которых вы можете узнать из документации.

#миниурок #progressbar2
⚡️ Задачка с собеседования | #Easy

Условие:

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

Примеры:

dig_pow(89) -> 89 # 8^1 + 9^2
dig_pow(695) -> 212 # 6^1 + 9^2 + 5^3
dig_pow(100) -> 1

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Собираем информацию о системе

Для этого нам нужен модуль os. Он позволяет взаимодействовать с операционной системой прямо из Python.

os.uname() — возвращает информацию о системе: название, имя в сети, релиз ОС и её версию.

os.geteuid(), os.getgid() — возвращают id пользователя или группы, с которого запущен процесс. Работает только на Linux.

os.getlogin() — возвращает имя пользователя, работает на двух ОС.

os.environ — словарь с значением окружения. Для получения PATH используйте get_exec_path().

#миниурок #os
⚡️ Гуглим без браузера

Для этого придумали модуль howdoi. Он принимает поисковой запрос и возвращает подходящий ответ.

Установка: pip install howdoi

Что бы получить краткую информацию о модуле, введите howdoi howdoi в терминал.

Система удобна тем, что не нужно искать на странице ответ, команда вернёт нужный вам код. Например, howdoi format date bash вернёт DATE=`date +%Y-%m-%d`.

#миниурок #howdoi
⚡️ Задачка с собеседования | #Easy

Условие:

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

Примеры:

is_isogram('Dermatoglyphics') -> True
is_isogram('isogram') -> True
is_isogram('aba') -> False
is_isogram('') -> True

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
👍1
⚡️ Пасхалки в Python

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

import this

import __hello__

import types
help(types.CodeType)

• Для начала установите pip install antigravity, после — введите import antigravity.

#теория
⚡️ Всё случайное — не случайно

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

randint(a, b) — берёт псевдослучайное целое число в промежутке от a до b.

random.choice(seq) — возвращает любое значение из последовательности. Это может быть список или множество.

random.shuffle(x)перемешивает элементы последовательности x.

Это, понятное дело, ещё не всё — весь функционал можно найти в документации.

#миниурок #random
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно создать новый список, который состоит из чисел в входящем списке не более N раз. Важно! Порядок не должен меняться. На входе будет только список с целыми числами, длиной больше нуля.

Примеры:

delete_nth([1, 1, 1, 1], 2) -> [1, 1]
delete_nth([20, 37, 20, 21], 1) -> [20, 37, 21]
delete_nth([1, 2, 3, 2, 1, 2, 3], 2) -> [1, 2, 3, 2, 1, 3]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Нечёткое сравнение строк

Может быть полезно для поиска опечатки в тексте или при разработке голосового помощника. А реализовано всё в модуле TheFuzz.

Установка: pip install thefuzz

Для просто сравнения текста используют fuzz.ratio(str, wait_str). Возвращает значение в процентах, насколько они похожи.

Также можно получить наиболее похожее значение из списка: process.extract(str, list) или process.extractOne(str, list).

Почитать об этом чуде можно тут.

P.S. Проект fuzzywuzzy был перемещён и переименован в thefuzz.

#миниурок #thefuzz #fuzzywuzzy