Chat:Ru/2021-12-02
CyberEcho: Это вообще без циклов делается: print('\n'.join(s + s[::-1]))
NeAlyssa: такой принт выведет строки друг за другом, а по заданию необходимо их выводить одновременно рядом, разделяя пробелом
Uljahn: print('\n'.join(f'{a} {b}' for a, b in zip(s, s[::-1])))
Uljahn: или так: [print(f'{a} {b}') for a, b in zip(s, s[::-1])]
Uljahn: хотя, без f-strings тоже работает
Uljahn: [print(a, b) for a, b in zip(s, s[::-1])]
Uljahn: тут. кстати, можно поменять разделитель, добавив в print параметр sep='_'
Uljahn: по умолчанию один пробел, неявно
TTeaLL: фига вы тут накидали, зипом не особо понимаю как пользоваться
Uljahn: zip от zip-lock - застёжка типа "молния", зубцы с одной стороны - это первая последовательность, с другой стороны - вторая, а на выходе - пары элементов из обеих по очереди
Uljahn: если не понимаешь - надо практиковаться
Uljahn: zip, map, filter и прочие элементы функционального программирования полезно знать и уметь применять, в стандартной библиотеке по этой теме есть модули functools и itertools
Uljahn: я считаю, выучить пайтон без знания основных модулей стандартной библиотеки - это очень поверхностный подход, почти на уровне "hello world"
Uljahn: по сути основа питона с базовым функционалом - это среда для загрузки "батареек"
TTeaLL: дак вот, я как раз и стараюсь разнообразить разными методами, с мап неплохо знаком, но видимо нужно больше практики, чтобы понять где что лучше применить
Uljahn: решай изичи, смотри чужие решения
Uljahn: можно попробовать на py.checkio.org порешать, там рейтинги решений получше, не плюсуют голимый гольф
TTeaLL: ну я на клешах подниматься пытаюсь, чувствую прогрес, но куда расти точно есть)
TTeaLL: но этот сайт видел, не придал ему значение, надо чекнуть
NeAlyssa: практически все перечисленные функции легко заменяются обычными форами с ифами, все-таки клеши больше не о реализации, а об идее так-то. мне кажется, чем заучивать все эти функции и потом пытаться их как-то засовывать в свои коды, проще спокойно писать как умеешь, и уже со временем, видя чужие кода, будет приходить понимание, что где и как можно сокращать и заменять
NeAlyssa: коды*
TTeaLL: тоже верно, но вообще функционалом хочется овладеть полноценно, всё таки не просто же так придумали мапы зипы и тд
Uljahn: тогда в мультиплееры можно попробовать, там ограничения такие, что приходится изворачиваться и оптимизировать, да и за читаемостью кода следить
Uljahn: тогда станет понятна разница между обычными форами и итераторами-генераторами
Uljahn: на клэшах масштаб не тот совсем, не те навыки тренируются
Uljahn: в основном плохие практики прививаются, я бы сказал
TTeaLL: не могу согласиться, из того, что я вижу решения очень красивые и логичные, да, иногда излишне сворачивают, но всё равно в целом я согласен со многими решениями
Uljahn: элементарные задачи имеют обычно одно элементарное решение, оно как правило выглядит красиво, логично и лаконично
Uljahn: но решение элементарных задач не учит думать, планировать, оценивать сложность, экспериментировать с алгоритмами и структурами данных
Uljahn: единственное положительное, чему учат клэши - выбрасывать написанный код, это иногда очень сложно сделать
TTeaLL: ясно, есть число 60, оно соответствует числу 100001, типо на 6 позиции стоит 1 и на 0 позиции стоит 1, и как превратить 60 в это 100001, я горю чёт, ненавижу тупить на таких моментах
NeAlyssa: на счет "не учит думать" не соглашусь, такие клеши отлично помогают научиться еще во время чтения условия сразу вылавливать только необходимую инфу и параллельно в голове уже представлять структуру того кода, который ты хочешь написать, и пытаться его быстро реализовать. умение так-то полезное
Uljahn: тяп-ляп и в продакшн
Uljahn: какая ещё структура кода в клэшах? там часто в одну строчку всё решается
Uljahn: это в мультиплеерах за 1000 LoC можно легко выйти
Uljahn: вот там структура и читаемость, архитектурные решения
TTeaLL: кстати, что за мультиплеер?
Uljahn: типа Code Royale
Uljahn: смотрю, ты в него играл
Uljahn: но там и других игр полно, на любой вкус и сложность
Uljahn: https://www.codingame.com/multiplayer/bot-programming
Uljahn: правда, в отличие от клэшей, за 15 минут даже в правила въехать не успеешь
TTeaLL: а, ну да, мне понравилось, но там да, надо запотеть
Uljahn: этот раздел - уникальная фишка CG, больше нигде такого не встречал
Uljahn: задачки типа клэшей много где есть, а полноценные мультиплееры - редкость
YurkovAS: +1 за мультиплеер
YurkovAS: все теперь точно пора остановиться с ww: обогнал miklla супер удачный сабмит :smiley:
SergeyShirokov: мультиплееры самый сок, да