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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Поиск наиболее частых элементов

Чтобы найти самые часто повторяющиеся значения, воспользуйтесь счётчиком Counter из библиотеки collections.

Так, метод Counter.most_common (x) покажет x кортежей.

Первое значение в них — заданный элемент, а второе — количество раз, в которые он повторялся в программе.
⚡️ Калькулятор в 1 строчке

Вот та самая строчка — print(eval(input()))

eval() создана для того, чтобы выполнять выражения и функции, при этом возвращая результат.

Да, eval() не может что-то присваивать переменным: она лишь использует их.

С её помощью можно, например, принимать словари и списки строкой, а можно — просто использовать её как калькулятор.
⚡️ Улучшенный ввод

Вывод в одну строку с помощью функции print не всегда подходит под решаемую задачу.

Поэтому, стоит воспользоваться встроенным модулем pprint: каждое новое вложение сопровождается дополнительным отступом, так что вывод всегда выглядит приятно и понятно.

Вот некоторые параметры, которые принимает pprint.pprint:

width=80 — ширина экрана печати
object — объект форматирования
compact=False — компактное форматирование
depth=None — уровни вложенности
stream=None — форматированный вывод

При желании, вы можете переопределить стандартную функцию print на более удобную pprint, написав print = pprint.pprint.
⚡️ Автоматическое перемещение файлов

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

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

Все эти файлы можно сохранять в одной папке, заранее указав её путь в скрипте.

Программа, в свою очередь, будет автоматически проверять её содержимое с интервалом в 10 миллисекунд.

💾 Скачать пример кода
⚡️ Принцип "KISS"

Принцип "KISS" расшифровывается как "Keep It Simple, Stupid", что можно перевести как "Придерживайся простоты, идиот".

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

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

Чем проще написан код — тем лучше.
⚡️ Функции all и any

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

Так, all возвращает значение True, если все объекты равны True или, по крайней мере, соответствуют заданному условию.

Функция any, в свою очередь, делает то же самое, но возвращает True даже в тех случаях, когда какие-то из объектов не соответствуют условию.

Другими словами, если хотя бы один из них равен True, когда все остальные не равны, то функция any всё равно вернёт значение True.
⚡️ Потоковый ввод

Ввод от пользователя можно обрабатывать потоком.

В таком случае, на Windows нужно воспользоваться специальной комбинацией клавиш — Ctrl + D.

Чтобы запустить потоковый ввод, нужно воспользоваться методом stdin в библиотеке sys.

Так, если нужно получить и сразу же обработать строку, то необходимо так и написать: sys.stdin.

Кроме того, если прежде, чем обрабатывать строку, необходимо полностью прочитать весь потоковый ввод, то стоит воспользоваться командой sys.stdin.readlines().
⚡️ Функции высшего порядка

Функции высшего порядка — это функции, которые принимают или возвращают другие.

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

Так, например, функция lambda может очень хорошо взаимодействовать с высшими функциями.

Другая функция, map(), может принять в себя предыдущую, но такой большой функциональности это не даст.

Есть ещё одна функция — filter(), с помощью которой можно фильтровать интеграторы и списки.

Первым аргументом она принимает функцию, если она возвращает True, пропуская элемент, а вторым — принимает список или интегратор.

Также, для большего удобства, эти функции можно совмещать.
⚡️ Генератор случайных паролей

Пример простого кода, основанного на модуле random.

В качестве источника символов, в этом файле прописаны все символы, которые возможно ввести на клавиатуре.

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

Также, полученные пароли автоматически сохраняются в файле "password.txt".

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

💾 Скачать пример кода
⚡️ Модуль os

Этот модуль даст вам доступ к функциям, которые зависят от конкретной системы.

Тип операционной системы можно определить с помощью атрибута os.name:

posix — это linux и macOS
nt — Windows
java — системы, которые работают в виртуальной Java-машине (тот же Android, например)

С его помощью вы можете создавать, удалять или переименовывать файлы и папки.

Также, вы можете менять их директорию простой функцией os.chdir().
⚡️ Модуль Zipfile

Модуль Zipfile гораздо более удобен для работы с zip, чем другие модули.

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

Сперва из zipfile необходимо импортировать ZipFile и открыть соответствующий файл.

printdir() — вывод текстом для печати всего списка содержимого

open() — открыть файл внутри архива

namelist() — вывод списка файлов в виде списка

Чтобы узнать больше возможностей этого модуля, просто воспользуйтесь help() или документацией.
⚡️ Принцип OCP

Дословно этот принцип расшифровывается как «Open-Closed Principle» — принцип открытости к расширению.

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

Возможно, на первый взгляд покажется, что принцип OCP конфликтует с YAGNI, но это — не так.

YAGNI говорит, что нельзя писать код, который не используется в данный момент, а OCP — имеет отношение к более глубоким частям кода.
📮 Что выведет этот код?
Anonymous Quiz
10%
[1, 4, 5]
20%
Ошибку
42%
[1, -2, -3]
29%
Посмотреть ответы
🖥 Уроки Python для начинающих

👨‍💻 Автор:
Гоша Дударь

1] Программирование на Python
2] Установка среды разработки
3] Первая программа
4] Переменные
5] Условные операторы

ℹ️ Смотрите эти и остальные 20 видеоуроков на YouTube
⚡️ Библиотека FuzzyWuzzy

Это — простая, но очень полезная и интересная библиотека для поиска совпадений в тексте.

К примеру, вы можете использовать её во время работы с ботами, которые общаются голосом или текстом — она значительно упростит некоторые ваши задачи.

Безусловно, вместо этого инструмента вы можете использовать любой другой, но именно он — самый удобный.

Чтобы установить библиотеку, необходимо выполнить команду: install fuzzywuzzy.
⚡️ Что выведет этот код?
Anonymous Quiz
25%
[0] [1] [2]
19%
[1] [2] [3]
23%
[0] [0, 1] [0, 1, 2]
32%
Ошибку
⚡️ Принцип DRY

Ещё один принцип программирования, который гласит: «Don`t repeat yourself», что в переводе значит «Не повторяйся».

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

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

Для чего это нужно? Ну, как минимум для того, чтобы упростить изменение кода в будущем.

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