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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
Что выведет этот код?
Anonymous Quiz
18%
30
38%
5 6
11%
11
33%
Ошибку
⚡️ Геттеры и сеттеры

В ООП языках, например C#, распространено использование таких конструкций, как геттеры и сеттеры. Они позволяют безопасно работать с приватными переменными.

В Python тоже есть такой функционал. Получение значения реализуется с помощью декоратора property, а назначение — @свойство.setter.

Также очень важно, чтобы методы и свойства имели одно и то же имя.

В примере выше мы отключаем возможность менять имя и проверяем возраст пользователя.

#теория
⚡️ Задачка с собеседования

Условие:

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

Пример:

text ('Am I want write code? Yeah! I like it') → I
text ('Hi! How are you? Hi! I am ok') → Hi
text ('test text test and test that again') → test

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

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

Для это используется модуль с не менее красивым названием — prettytable с одноименным классом PrettyTable.

Он позволяет легко составить таблицу и использовать её для вывода в консоль или сразу в файл.

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

Библиотека может взаимодействовать с sqlite3 и csv-файлами. Также, вы можете настроить позиционирование, сортировку и даже отображение определённых строк и столбцов при выводе.

Полный набор возможностей можно просмотреть на сайте документации.
Что выведет этот код?
Anonymous Quiz
8%
[0]
37%
[0, 2, 4]
12%
[]
25%
[0, 2]
18%
Ошибку
⚡️ Работам с архивами

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

Всего поддерживается 5 форматов: zip, tar, gztar, bztar, xztar1

• make_archive(name, format, root_dir) — создаёт архив. Он берёт все файлы из root_dir, сжимает в тип format и сохраняет в открытую папку под именем name.

unpack_archive(file_name, dir, format) — распаковывает архив file_name в папку dir. Принимает необязательный параметр format, с помощью которого вы можете самостоятельно задать тип архива.

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

Более подробный функционал можно посмотреть в документации.

#миниурок #shutil
Что выведет этот код?
Anonymous Quiz
25%
min: 1
42%
max: 4
21%
Ошибку
12%
max: None
⚡️ Скачиваем видео с ютуба

Модуль pytube позволяет загружать видео с YouTube, фильтровать их по качеству и даже загружать аудио отдельно от видео.

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

Библиотека поддерживает консольную версию программы. Например, pytube <link> скачает видео и сохранит в текущей папке.

Подробнее весь функционал описан на сайте документации. А исходный код можно найти на странице github.

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

Условие:

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

На вход идут только символы английского языка в нижнем регистре. Возвращаемое значение — строка из недостающих символов.

Пример:

findmissingletters('abc') -> defghijklmnopqrstuvwxyz
findmissingletters('mnopqrstuvwxyz') -> abcdefghijkl
findmissingletters('acegikmoqsuwy') -> bdfhjlnprtvxz

Усложнение: строка может принимать символы в верхнем и нижнем регистре, а также они могу повторяться.

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

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

shutil
— модуль, для выполнения высокоуровневых операций над файлами или коллекциями файлов.

• copyfile, copy, copy2 — методы для копирования файлов. copyfile копирует данные внутри файла обязательно в другой файл, а copy и copy2 могут принимать на выход — папку.

copy2 отличается тем, что также копирует все метаданные, такие как время создания, изменения и т.д.

• copytree — копирует целую ветку файлов и папок. Все директории внутри директории будут скопированы в заданное место.

Метаданные, права доступа повторяются с помощью copystat(), а файлы — copy2().

• copystat — копирует время, флаги, права доступа и т.д.

#миниурок #shutil
Что выведет этот код?
Anonymous Quiz
10%
12
36%
7
29%
3,5
25%
Ошибку
⚡️ Работаем с путями с помощью os.path

os.path
— низкоуровневый модуль для работы с файловыми путями. Мы рекомендуем работать с ранее упомянутым pathlib, но os.path стоит упомянуть поскольку он довольно часто встречается в проектах.

join(path, *paths) — соединяет все аргументы в один путь. Стоит отметить, что в unix-подобных системах и в windows пути отличаются и это может создать множество проблем с переносом скрипта на разные платформы.

expanduser(path) — заменяет или user на папку с пользовательскими данными. В linux это переменная HOME, а в Windows — USERPROFILE.

Больший функционал можно просмотреть на сайте документации.

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

Условие
:

Ваша задача — написать код, который получает словарик типа «Имя : [массив оценок]».

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

Пример:

Вход
: {"Mark":[2, 6, 9, 2], "Kevin": [11, 8], "John":[7, 4, 11, 5, 8], "Max": [2, 4, 5]}

Вывод: Kevin: 9.50, Max: 3.67

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