a=3; b=5
нормально питон отрабатывает точку с запятой, другое дело что можно и без них.
первое время больше парило что циклы и т.п. отделяются табуляцией без {}
Заставили нас тут писать курсач на Питоне. Прикольный язык, но мне в нём не хватает строгости.
Определяю переменную в начале программы, напишу десяток другой строчек кода, а потом думаю, что вообще было в этой переменной и как к ней обращаться.
Или те же циклы. Если бы я в школе начинал изучать Питон, а не Паскаль, то местные while и for (который на самом деле работает как "foreach") пришлись бы очень кстати, т.к. они максимально логичны. Но я уже привык к си-шным for, while и foreach, и оформлять цикл перечисления в while мне неудобно. Я 2 раза вешал свой курсач в бесконечный цикл, потому что забывал увеличивать счетчик в конце while...
В итоге, вышел говнокод ещё больший, чем обычно (из-за того, что язык я изучал прям в процессе написания кода), но зато, сука, красивый и относительно читаемый.
Очевидно, в том, чтобы знать этот самый range и додуматься его так использовать. Если ещё буду что-нибудь писать на Питоне, возьму на вооружение. Спасибо.
не писал комменты и забывал об иттерациях в циклах. хмм, а причем тут строгость языка?
Мой стандартный аргумент - в тех же плюсах, после того как поставишь {} - ты все равно внутри отступы проставляешь соответственно уровню вложенности, иначе год нечитабелен. То есть остается убрать ненужный атрибут (скобки), и вот мы логически приходим к стилю питона/руби
Аргумент вида - если после туалета все равно мыть руки, то зачем тебе туалетная бумага?
Понятно что это чисто привычка, и многие языки позволяют однострочный блок не обрамлять скобками.
Тем не менее от этого падает читабельность. Как и обычные скобки они проще для восприятия.
С чего падает читабельность, если ты, просто окинув взглядом код, понимаешь его структуру. А вот если в этом коде убрать отступы и оставить только скобки - в этом месиве надо долго копаться, чтобы понять что к чему относится.
Так что вообще не понимаю как к делу относится аналогия, и чем при наличии правильных отступов помогают скобки.
Также как и с порядком операций.
(а && в && с) // (а && в && с) // (а && в && с) - читается проще чем без скобок, хотя они избыточны, не надо глазами искать оператор "или", сразу понятно, условие проходит для трех групп и надо оказаться в одной из них.
А зачем ты сравниваешь этот вариант с обсуждаемым? Тут у тебя не было никакой группировки, и ты ее добавил для соответствия семантике.
В обсуждаемом же ты уже сделал визуальное и логическое разделение при помощи отступов.
Более подходящее сравнение - утверждать что
({а && в && с}) // ({а && в && с}) // ({а && в && с})
Это более читаемо чем то что ты предложил.
С чего бы это? Ты спросил зачем скобки, если и так понятно, я тебе написал зачем скобки и как они влияют на читабельность.
Выражение выше можно использовать без скобок, как и код с отступом. Но скобки сразу показывают как читается выражение и отсутствует необходимость разбираться что написал другой человек пару месяцев назад.
Это также удобно при написании, поскольку скобки ставятся сразу и сразу видно где кончается конструкция. Сложнее накосячить одним табом, плюс с мержами неясно как еще все будет.
С чего бы это? Ты спросил зачем скобки, если и так понятно, я тебе написал зачем скобки и как они влияют на читабельность.
Да сколько можно перевирать то.
Мы сравниваем варианты
if x == 1 {
do_something()
}
и
if x == 1:
do_something()
Насколько я понимаю, никто не оспаривает необходимость отступов. В итоге на читабельность (возможность окинуть код взлядом и быстро понять что происходит) скобки не влияют, ты будешь в первую очередь смотреть на уровни отступа. Убери уровни отступа, и любой нетривиальный код превратится в месиво, так что скобки ничего не регают для читабельности.
В воем же примере без логических операций, скобки - это скорее как отступы при ворматировании, они показывают логические блоки. Это вообще не относится к делу, так как имеет совсем другую природу.
Неа, сравниваем вот такое
if (a)
Dob
If (b)
Doc
Dod
Dog
If (f)
Dog
If (h)
Dok
Else
Dol
Else
Dov
Это мержил джун три месяца назад. Здрасьте.
Ну ты еще в пол пробела отступ сделай, ага.
Вот сравни два куска кода https://gist.github.com/Flid/d9ac7170c5b42d721e9661c148f311b... - сильно прям ухудшилась читабельность без скобок?
Там одна строчка в блоке, чего смеяться то? То что можно блок вынести в функцию не всегда вариант - как минимум придется прыгать по кучи мест, чтобы понять что и куда. А далее еще делать мутабельные переменные или плодить данные.
Опять же вопрос мержа остался. Со скобками у тебя просто не сбилдится, а с без них будешь потом ковырять что и куда.
IT-юмор
5.6K постов52.5K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору