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
⚡️ Пишем своё веб-приложение

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

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

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

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

#миниурок #pyramid
Принцип DRY

Don't repeat yourself («не повторяйся») — этот принцип означает, что стоит избегать дублирования кода или данных.

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

Следование принципу приводит проект к модульной архитектуре с чётким разделением между бизнес-логикой и программными классами.

#принцип #dry
⚡️ Задачка с собеседования | #Medium

Условие:

Дано число n >= 2, и выведите список со всеми положительными целыми числами меньше gcd(n, k) == 1 (то есть, взаимно простые), где k — любое из возможных чисел.

Примеры:

coprimes(3) ➞ [1, 2]
coprimes(10) ➞ [1, 3, 7, 9]
coprimes(20) ➞ [1, 3, 7, 9, 11, 13, 17, 19]

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

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

«You Ain't Gonna Need It» или «Вам это не нужно». Это означает, что не стоит добавлять функционал, которого нет в ТЗ и который не нужен заказчику.

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

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

#принцип #yagni
Что выведет код выше?
Anonymous Quiz
22%
1 2 3
13%
1 2
27%
2 3
17%
3
21%
Узнать ответ
⚡️ Про нижние подчёркивания в названиях переменных

_name — переменная используется внутри класса и вам не стоит с ней работать напрямую. Также она не импортируется при from module import *.

name_ — решает проблем с ключевыми словами.

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

К ней можно получить извне доступ только с помощью _classname__name. classname — имя класса с удалёнными начальными символами подчёркивания.

name — просто соглашение Python разработчиков, чтобы имена специальных методов не конфликтовали с именами пользователей.

#теория
Что выведет код выше?
Anonymous Quiz
15%
0
29%
1
48%
Ошибку
7%
Узнать ответ
⚡️ Интересные GitHub проекты

Awesome Python — Набор классных библиотек, фреймворков и инструментов. Есть и более крутая версия 🕶.

Космический Python — книга на английском языке про шаблоны архитектуры приложений на Python.

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

Public APIs — невероятно огромный список доступных API на любой вкус и цвет.

#github
⚡️ Определяем тип строки

str.isalpha() возвращает True, если все символы являются частью алфавита (a-z).

str.isdecimal() — проверяет, является ли строка только набором цифр (1-9). В то время как:

· str.isdigit() вернёт True, даже если строка будет содержать странные цифры (² или \u00B2).

· str.isnumeric() вернёт True, даже если это дробь (½ или \u00BD).

str.isalnum() — проверяет, является ли строка набором символов или цифр.

#миниурок #str
⚡️ Упрощаем поиск багов

Функция поиска площади квадрата со стороной 5 должна возвращать 25. А если не вернёт? Самый быстрый способ это проверять — использовать assert.

Если оператор получает на первый аргумент False, то выводит AssertionError с текстом из второго аргумента (если таков имеется).

Чтобы убрать проверку, добавьте флаг -O при запуске приложения: python3 -O foo.py. Подробнее в документации.

#теория