Форум сайта python.su
0
Уважаемые коллеги! Не могу решить изучать этот язык или нет, хотя предварительно многое привлекает! Проблема в том, что как я понял, в языке не предусмотрено завершение цикла ничем ни end ни ; (а все определяется отступом). Тогда не ясно, если в программе сложная структура циклов (и присутствуют во множестве вложенные циклы) и начало цикла на одной странице видимого текста программы, а я уже например на третьей странице. Мне что целится для начала очередного вложенного цикла табуляцией, и листать сначала программу вверх? И что надо помнить тогда сколько там я вверху уже табулировал? В голове у меня полная неясность. Такая же проблема с оператором if. Подскажите как на практике вы решаете эту проблему и она вас никак не напрягает при написании больших и сложных модулей?
Отредактировано zino700 (Май 17, 2020 05:42:51)
Офлайн
253
Эта проблема не напрягает потому что если у вас сложная структура циклов то это просто неправильная архитектура программы. Для уменьшения сложности есть много инструментов. Можно внутренности циклов в функции выносить, можно несколько циклов объединить в один составной итератор (см примеры в модуле itertools), операторы перегружаются (например матричные и тензорные операции записываются как умножения или свертки, что сразу убирает писанину с кучей циклов) и т. п..
То что функционально законченный фрагмент кода должен умещаться на экран справедливо для всех языков.
Вот мне много на плюсах приходится писать. Блоки заключены в скобки. Но посмотрите на стиль оформления. Люди вс равно и в таких языках ориентируются на отступы в большей степени чем на скобки..
Офлайн
0
doza_and
То что функционально законченный фрагмент кода должен умещаться на экран справедливо для всех языков.
Офлайн
186
> Не могу решить изучать этот язык или нет … в языке не предусмотрено завершение цикла ничем ни end ни ; (а все определяется отступом).
Тогда лучше не изучай.
> Подскажите как на практике вы решаете эту проблему и она вас никак не напрягает при написании больших и сложных модулей?
На практике проблемы с читаемостью возникает как раз в тех языках где отступы ставить не обязательно 
Офлайн
294
zino700хмм, а каким образом это решается в ЯП где присутвуют скобочки? вам не приходится листать ввех и считать открытые-закрыте скобочки, чтобы понять к к какому блоку относиться эта закрывающая скобка?
Тогда не ясно, если в программе сложная структура циклов (и присутствуют во множестве вложенные циклы) и начало цикла на одной странице видимого текста программы, а я уже например на третьей странице. Мне что целится для начала очередного вложенного цикла табуляцией, и листать сначала программу вверх?
[code python][/code]
Офлайн
0
PEHDOM
PEHDOM
хмм, а каким образом это решается в ЯП где присутвуют скобочки? вам не приходится листать ввех и считать открытые-закрыте скобочки, чтобы понять к к какому блоку относиться эта закрывающая скобка?
Офлайн
Отредактировано zino700 (Май 17, 2020 21:14:58)
Офлайн
14
zino700, не несите ерунды, во-первых считать там все легко благодаря настройкам IDE, жмякнул Tab улетело на 4 пробела вперед, и при следующем переносе строки там и остаетесь автоматически, пока не вернетесь жмакнув backspace. Вот как выглядит хреновый код, а соблюдай я pep8 когда его писал, он был-бы еще читабельнее! Картинка кликабельна! Тут сам язык заставляет ВСЕХ прогеров придерживаться определенного стиля кода, а когда прогер прислушивается к рекомендациям из pep8 то ваще “почерк” пропадает, остаются только знания в коде. ![]()
Все-же соглашусь, поначалу непривычно без {} и ; но потом начинаешь смотреть на это как на лютое дерьмо. Я после пыхи привыкал гдет неделю, теперь-же глаза мои чтоб больше ее не видели.
Ну и наконец можно либо судачить тут и нихрена не делать, а можно попробовать питон и сделать свои выводы, думайте своей головой, не будте стадом.
P.S. иногда приходится открывать AVR Studio и брать в руки Си, и хоть либа под 8bit avr куда меньше питонячьей, но ИМХО питон легче и проще.
Отредактировано @cckyi_boxxx (Май 17, 2020 22:33:47)
Офлайн
0
@cckyi_boxxx
Спасибо. Вас понял.
Офлайн
294
zino700обычно нет, IDE сама считает блоки(даже notepad++ это умеет, который всего невсего текстовый редактор), и вставляет нужное количество пробелов при преводе строки, тоесть курсор у вас переходит не на первую позицию в строке, а на 12-ю, например, если у вас третье вложение.
я легко помню сколько циклов я открыл и легко вижу сколько закрывающих скобок надо поставить и позицию скобки можно ставить приблизительно а с пробелом придется выцеливать. Ведь так?
[code python][/code]
Офлайн