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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Обрабатываем аргументы командной строки

argparse
— встроенный модуль, позволяющий обработать данные, переданные при запуске скрипта из терминала.

На самом деле, argparse, является обёрткой над sys.argv и, если у вас простенький скрипт, который принимает 1-2 аргумента, то я советую получать аргументы напрямую из sys.

А если вам нужно больше возможностей, то просто создайте класс ArgumentParser, который сгенерирует базовые команды (-h, --help), описание и название программы.

После этого вы сможете добавить свои аргументы, используя метод add_argument. Чтобы получить все данные, воспользуйтесь методом parse_args, который возвращает список из параметров.

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

Условие:

Ваша задача — написать функцию, которая добавляет один к последним цифрам в строке. Если же строка пустая или цифр в конце не обнаружилось — добавляет их самостоятельно.

Пример:

increment_string('foo') -> foo1
increment_string('agent006') -> agent007
increment_string('f0o1') -> f0o2
increment_string('f0o999') -> f0o1000

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

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

sys — предустановленный модуль, обеспечивающий доступ к функция и переменным интерпретатора Python.

Данный модуль имеет огромное количество функций и переменных, подробнее о них можете почитать на сайте документации. Здесь же будут самые интересные из них:

sys.platform — позволяет узнать платформу, на которой запущен Python и, на её основе выполнить определённый код. Также, она возвращает строку. Все значения тут.

sys.stdin — файловая переменная, позволяющая получить данным к входным данным из терминала.

sys.stdout, sys.stderr — файловые переменные позволяющие выводить в терминал сообщения/ошибки.

sys.version_info — позволяет узнать версию языка, на котором запускается скрипт. Возвращает кортеж. Если же вам нужна строка, воспользуйтесь sys.version

#миниурок #sys
Что выведет код выше?
Anonymous Quiz
19%
2, 3
15%
(2, 3)
14%
16, 0
15%
(16, 0)
7%
(6, 6)
29%
Узнать ответ
⚡️ Разница между __str__ и __repr__

Довольно часто при создании собственного класса, необходимо выводить данные о нём в виде строки. Документация говорит использовать __str__ и __repr__, но в чём же между ними разница?

__str__() — метод, который превращает объект в более читаемый вид, понятный для пользователя программы. Если же он не определён, то вызывает __repr__

__repr__()
— метод, используемый программистами. Это — строка, позволяющая создать новый объект с такими же данными, используя функцию eval.

#теория #str
remove_comments.py
264 B
⚡️ Задачка с собеседования | #Medium

Условие:

Ваша задача — написать функцию, которая возвращает строку без комментариев.

Примеры находятся в файле выше.

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

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

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

Для работы с ним вам достаточно двух функций:

pickle.dump(obj, file) — записывает сериализованный объект в файл.

pickle.load(file) — загружает объект из файла и возвращает его.

Внимание! Этот модуль считается небезопасным. Не загружайте файлы из сомнительных источников.
👍1
Что выведет код выше?
Anonymous Quiz
38%
3
13%
2
4%
1
34%
Ошибку
11%
Узнать ответ
⚡️ Собираем данные о системе

psutil
— утилита, позволяющая получить данные о системе и о её состоянии: от количества ядер процессора, до текущей нагрузки на сеть.

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

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

Например, есть функция psutil.Process.rlimit, работающая только в ОС Linux и FreeBSD, но не работающая в Windows.

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

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

Условие:

Ваша задача — написать функцию, которая подсчитывает количество повторяемых элементов. Желательно выполнить задачу без использования сторонних модулей.

Примеры:

dup_count('abcde') -> 0
dup_count('indivisibility') -> 1
dup_count('Indivisibilities') -> 2
dup_count('aA11') -> 2

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

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

В Python почти каждый оператор — метод класса. Например, + — это __add__, сравнение (==) — это __eq__, а with__enter__, __exit__.

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

Подробнее об используемых метода можно найти на странице документации оператора, как с with, или в документации модуля operators, которые предоставляются в виде функций.

#теория #operators
⚡️ Модуль collections, класс Counter

collections
— модуль, предоставляющий специализированные типы данных. Он хранит в себе различные классы, такие как namedtuple, counter, deque и множество других. Об одном из них мы и поговорим.

Counter — словарь, позволяющий узнать какое количество раз повторяются элементы в итерируемом объекте (list, string).

Получить данные можно с помощью квадратных скобочек. Если же элемент не найден, он возвращает 0.

most_common(n) — возвращает n самых повторяемых объектов.

elements() — возвращает итератор для всех элементов.

#миниурок #Counter