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
⚡️ Библиотека Colorama

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

Colorama может отображать текст как на переднем плане, так и на заднем (цвет текста и цвет фона).

Если вам нужно, чтобы Colorama работала под Windows, то в начале вызовите colorama.init().

На картинке выше представлен небольшой пример кода.
Изучаем TypeScript 3

В книге — основы и продвинутые возможности языка TypeScript, интеграция существующих библиотек JavaScript и сторонних фреймворков с использованием файлов объявлений, а так же освоение популярных JavaScript-фреймворков.

Книга начинается со знакомства с языком TypeScript, и, поэтапно переходит от базовых понятий к продвинутым и мощным функциям языка, включая методы асинхронного программирования, декораторы и обобщения.

👨‍💻 Автор: Розенталс Н., 2019

📮 Скачать

#Typescript #rus
⚡️ Как превратить проект в .exe файл?

Просто так запустить проект на системах, где не установлен Python или какие-то библиотеки из него — невозможно.

Поэтому, воспользуйтесь pyinstaller, который создаст исполняемый .exe файл из вашей программы.

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

install pyinstaller

Далее, переходим в командную строку, заходим в нужную директорию с помощью cd и вводим следующую команду:

--onefile --noconsole main.py (main.py — файл, который запускает вашу программу).

Готово. Исполняемый файл будет находиться в папке dist.
⚡️ Получаем краткую справку о функции

Если вы пользуетесь современными редакторами кода, то они помогут вам не только правильно её написать, но и подсказать некоторые параметры.

Однако, когда этого недостаточно, вы можете воспользоваться одной из этих двух функций: dir() и help().

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

Что касается функции dir(), то она так же просто показывает список всех доступных методов для указанной функции.
⚡️ Проверяем версию Python

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

Чтобы этого не произошло, перед использованием программы на другом устройстве стоит проверить версию Python с помощью значения version_info библиотеку sys.

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

Простой скрипт мини-варианта игры «Блэкджек».

Изначально у человека 0 очков. Вводом y или n он должен ответить, будет ли он брать карту.

Если он выбирает n, то программа говорит ему, сколько баллов он набрал и завершается.

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

Если количество очков больше 21 — пользователь проиграл, но если ровно 21 — он выиграл.

💾 Скачать пример скрипта
⚡️ Символы экранирования

При выводе строки могут появляться символы по типу \n. Такие записи Python считает как 1 строку, но вывод можно оформить гораздо более красиво.

Вот примеры таких самых распространённых символов:

\\ — Обратный слеш (остаётся 1 "\")
\'
— Апостроф (остаётся 1 " ' ")
\"
- Кавычка (остается 1 ")
\n
— Переход на новую строку

Те, кто этого не знают, могут столкнуться с трудностями при написании кода. Чтобы отменить экранирование, достаточно просто ввести r перед самой строкой.
⚡️ Правильное оформление кода

Если вкратце, то в Python есть своя «философия», чтобы человек мог сразу разобраться в коде другого разработчика и не привыкать к другому оформлению кода.

Такую «философию» называют PEP 8. Вот основные моменты из этого документа:

1. Импорты допускается делать только по одному на каждую строку

2. Количество символов в строке не должно быть больше 101

3. Использовать табы и пробелы можно, но смешивать их в отступах — запрещено. 1 отступ = 4 пробела.

4. Вокруг символов +, -, =, *, /, ** нужно ставить пробелы.
⚡️ Пишем собственный словарь

Стандартная задачка с работой файлов в Python.

Суть в том, чтобы превратить англо-латинский словарь в латино-английский.

Вводимые данные берутся из input.txt, выводимые — сбрасываются в output.txt.

В файле input.txt первой строкой указывается число получившихся слов, а затем — латинские слова в отсортированном порядке.

💾 Скачать пример кода
⚡️ Работа со строками

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

Вот самые популярные из них:

1. strip() — удаление пробелов в начале и конце

2. center(int, chr=") — центрировать текст. int — нужное количество знаков, а chr — символ, который добавится в начало и конец.

3. lower() — преобразовать к нижнему регистру

4. upper() — преобразовать к верхнему регистру\
⚡️ Поиск наиболее частых элементов

Чтобы найти самые часто повторяющиеся значения, воспользуйтесь счётчиком 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() или документацией.