Как не позориться перед собратьями, пишем красивый код на Python | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой уникальный скрипт?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Как не позориться перед собратьями, пишем красивый код на Python

Lanutrix

Бот
Автор темы
9 Фев 2023
44
131
0
Всем доброго времени суток. Товарищи форумчане, начинающие питонисты, пора писать красивый код.

Okay, Let's go!

Я надеюсь ты знаешь, что такое pep8. Нет? Это плохо, но поправимо. Для начала рассмотрим основные стандарты, без которых ты будешь выглядеть в глазах других обезьяной. Запомни, когда пишешь код на python нужно:
1. Соблюдать отступы в 4 пробела.
2. Отступы до и после знаков =, ==, >, <, <=, >=, !=
3. Отступ после "," и ":" (после двоеточия в объявлении словаря/json)


Вообще их гораздо больше, но для того, чтобы не потерять уважение коллег хватит соблюдать эти 6 правил. Ещё хочу порекомендовать autopep8, который поможет с первыми тремя пунктами. Данный модуль имеет интеграцию с vscode, активируется при нажатии Shift+Alt+F.

Дальше хочу поговорить о типизации. Как ты знаешь python это динамически типизированный язык. То есть переменная, которой было присвоено значение 12 может поменять его на "-&2" Или даже на {"j": \[23]}. Это говорит о том, что если ты забудешь какого типа должна быть переменная, то ты можешь потратить от нескольких минут до нескольких часов за таким интереснейшим делом как дебаг. А чтобы не тратить столько времени на поиск ну уж очень глупых ошибок, я хочу предложить способ, который исключит их.

Есть такая штука как типизация функций. То есть мы изначально говорим, что условно наша give_money функция принимает на вход только число, а на выходе отдаëт строку. Сразу пример:

Python:
def give_money(money: int) -> str:
    if money > 10:
        return "или лесом"
    return "Лааадно, держи"


Итак, общая конструкция следующая, после названия каждой переменной ставим двоеточие пробел и тип данных, а тип данных, который возвращает функция идëт после еë имён и имеет вид " -> тип". Иногда возникают ситуации, когда нужно принимать несколько типов данных, например int или float, или возвращать например dict или None. В данном случае конструкции остаëтся той же, но теперь тип данных записывает как int|float и dict|None, то есть тип|другой тип|ещё тип. Я считаю, что на то, чтобы разобраться с типизированием ты потратишь максимум пару часов. По сравнению с тем временем, которое ты сэкономишь на дебаги это ничтожно мало.

В общем и целом это всё. Конечно, если говнокод написан по стандартам, то это не лишает его заслуженного звания. Но как минимум практика с типизацией поможет сделать код менее говëнным.

А на этом всё! Всем добра и только чистого кода
 
Like
  • 35
Реакции: 34 users

Lanutrix

Бот
Автор темы
9 Фев 2023
44
131
0
mastropos, egg, если отбросить шутку в сторону, то автокоплиты на основе ИИ реально помогают, но есть нюанс. Сейчас ИИ крайне редко может написать, что-то сложнее, чем 1 функция и то нужно расписать не хилый такой промт. В общем и целом если ты реально понимаешь, как устроен конкретный язык, то сбор приложения по кусочкам, написанным ИИ, сильно ускоряет разработку
 

mastropos

Бот
14 Янв 2023
157
193
43
Lanutrix, я в курсе. для ИИ нужно расписывать нормальный тз, указывать либы, с которыми хочешь работать, ну и разбивать на логические части
 
Активность:
Пока что здесь никого нет