Chat:Ru/2021-12-02

From CG community
Jump to navigation Jump to search

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: по умолчанию один пробел, неявно

Default avatar.png TTeaLL: фига вы тут накидали, зипом не особо понимаю как пользоваться

Uljahn: zip от zip-lock - застёжка типа "молния", зубцы с одной стороны - это первая последовательность, с другой стороны - вторая, а на выходе - пары элементов из обеих по очереди

Uljahn: если не понимаешь - надо практиковаться

Uljahn: zip, map, filter и прочие элементы функционального программирования полезно знать и уметь применять, в стандартной библиотеке по этой теме есть модули functools и itertools

Uljahn: я считаю, выучить пайтон без знания основных модулей стандартной библиотеки - это очень поверхностный подход, почти на уровне "hello world"

Uljahn: по сути основа питона с базовым функционалом - это среда для загрузки "батареек"

Default avatar.png TTeaLL: дак вот, я как раз и стараюсь разнообразить разными методами, с мап неплохо знаком, но видимо нужно больше практики, чтобы понять где что лучше применить

Uljahn: решай изичи, смотри чужие решения

Uljahn: можно попробовать на py.checkio.org порешать, там рейтинги решений получше, не плюсуют голимый гольф

Default avatar.png TTeaLL: ну я на клешах подниматься пытаюсь, чувствую прогрес, но куда расти точно есть)

Default avatar.png TTeaLL: но этот сайт видел, не придал ему значение, надо чекнуть

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

NeAlyssa: коды*

Default avatar.png TTeaLL: тоже верно, но вообще функционалом хочется овладеть полноценно, всё таки не просто же так придумали мапы зипы и тд

Uljahn: тогда в мультиплееры можно попробовать, там ограничения такие, что приходится изворачиваться и оптимизировать, да и за читаемостью кода следить

Uljahn: тогда станет понятна разница между обычными форами и итераторами-генераторами

Uljahn: на клэшах масштаб не тот совсем, не те навыки тренируются

Uljahn: в основном плохие практики прививаются, я бы сказал

Default avatar.png TTeaLL: не могу согласиться, из того, что я вижу решения очень красивые и логичные, да, иногда излишне сворачивают, но всё равно в целом я согласен со многими решениями

Uljahn: элементарные задачи имеют обычно одно элементарное решение, оно как правило выглядит красиво, логично и лаконично

Uljahn: но решение элементарных задач не учит думать, планировать, оценивать сложность, экспериментировать с алгоритмами и структурами данных

Uljahn: единственное положительное, чему учат клэши - выбрасывать написанный код, это иногда очень сложно сделать

Default avatar.png TTeaLL: ясно, есть число 60, оно соответствует числу 100001, типо на 6 позиции стоит 1 и на 0 позиции стоит 1, и как превратить 60 в это 100001, я горю чёт, ненавижу тупить на таких моментах

NeAlyssa: на счет "не учит думать" не соглашусь, такие клеши отлично помогают научиться еще во время чтения условия сразу вылавливать только необходимую инфу и параллельно в голове уже представлять структуру того кода, который ты хочешь написать, и пытаться его быстро реализовать. умение так-то полезное

Uljahn: тяп-ляп и в продакшн

Uljahn: какая ещё структура кода в клэшах? там часто в одну строчку всё решается

Uljahn: это в мультиплеерах за 1000 LoC можно легко выйти

Uljahn: вот там структура и читаемость, архитектурные решения

Default avatar.png TTeaLL: кстати, что за мультиплеер?

Uljahn: типа Code Royale

Uljahn: смотрю, ты в него играл

Uljahn: но там и других игр полно, на любой вкус и сложность

Uljahn: https://www.codingame.com/multiplayer/bot-programming

Uljahn: правда, в отличие от клэшей, за 15 минут даже в правила въехать не успеешь

Default avatar.png TTeaLL: а, ну да, мне понравилось, но там да, надо запотеть

Uljahn: этот раздел - уникальная фишка CG, больше нигде такого не встречал

Uljahn: задачки типа клэшей много где есть, а полноценные мультиплееры - редкость

YurkovAS: +1 за мультиплеер

YurkovAS: все теперь точно пора остановиться с ww: обогнал miklla супер удачный сабмит :smiley:

SergeyShirokov: мультиплееры самый сок, да