русский
Germany.ruForen → Архив Досок→ Programmierung

Задачка на питоне ноутпад

1617  1 2 3 4 alle
Бесконечный цикл завсегдатай31.07.22 20:35
NEW 31.07.22 20:35 
in Antwort VornerX 31.07.22 14:09
Пфф, а что тут lazy? Тебе вообще смысл этого термина известен? ) Или это потому что ты генератор заюзал? )))


names = (line.strip() for line in open("input.txt"))  # 1: Ничего не делает и ждет пока результат понадобится
groups = windowed(names, 5)  # 2: Тоже ничего не делает никакой обработки
with open("output.txt", "w") as f:
    for п in groups:
        f.write(",".join(п) + "\n")  # Только здесь начинает работать цикл 2, который крутит цикл 1 (пошагово)


Ничего не делается до последнего цикла. Это простейший дата пайплайн.


Если ты таких вещей не знаешь, вперед на курсы и изучай генераторные выражения и вообще генераторы и итераторы. Вот тебе ссылка навскидку, а дальше сам https://towardsdatascience.com/what-is-lazy-evaluation-in-...


Я просто не понимаю как ты можешь кого-то еще учить. Это типа как в поговорке: Кто не может работать идет преподавать, а кто не может преподавать идет в политику. И эти люди учат нас не ковырять в носу.

#41 
Бесконечный цикл завсегдатай31.07.22 20:51
NEW 31.07.22 20:51 
in Antwort VornerX 31.07.22 14:05

Придется макнуть тебя еще раз, но уже глубже. Это ведь твой код, правильно?


Ты умудрился написать алгоритм сложностью N^2 вместо одного прохода. А еще зачем-то два раза один и тот же дорогой метод вызвать, хотя его надо 0 раз вызывать поскольку индекс тебе сразу дается. Ты думал, что повторный вызов другой индекс найдет? Я сразу вспоминаю определение: "Безумие: повторять одно и то же действие и ожидать других результатов"


Далее. Это же ты родил эту фразу, правильно?


Сеты заявлены как неупорядоченные, но в переписке core developers можно почитать, что фактическая имплементация такова, что при отсутствии дальнейших манипуляций с сетом, если им оборачивали лист, то ordering гипотетически останется. На практике, для простых задач, этого хватает.

Ну тогда не поленись и проверь сам какой будет порядок:



Так что это уже не глупость (как выше), а тянет на криминальную статью (в программировании). Перевести стрелки на core developers вряд ли удастся - бить за такое будут тебя сильно если ты это "применишь на практике".


Так что перестань скакать, гнуть пальцы, быковать и переводить стрелки на celery или core developers. А лучше наморщи мозг и начни думать.

#42 
alex445 коренной житель31.07.22 21:39
NEW 31.07.22 21:39 
in Antwort Бесконечный цикл 31.07.22 20:27, Zuletzt geändert 31.07.22 21:40 (alex445)

Как тогда сделать, если написать надо много, а задача на подзадачи не разбита? Ну или если разбить, то она в общем и целом выполняться не будет - т.е. промежуточные коммиты не добавят фичу, а лишь подготовят "платцдарм" для неё.

#43 
MrSanders коренной житель01.08.22 11:24
NEW 01.08.22 11:24 
in Antwort alex445 31.07.22 21:39

ветка (branch)

#44 
alex445 коренной житель01.08.22 11:51
NEW 01.08.22 11:51 
in Antwort MrSanders 01.08.22 11:24

Т.е. любые неполные коммиты, эксперименты и прочее - делать свою ветку, и потом мёржить? А в гланую коммитить только полностью готовые фичи и полностью исправленные баги?

#45 
AlexNek патриот01.08.22 12:32
AlexNek
NEW 01.08.22 12:32 
in Antwort alex445 01.08.22 11:51
А в главную коммитить только полностью готовые фичи и полностью исправленные баги

Вопрос только в том что есть главная ветка.

git branching strategy

#46 
alex445 коренной житель01.08.22 13:01
NEW 01.08.22 13:01 
in Antwort AlexNek 01.08.22 12:32, Zuletzt geändert 01.08.22 13:09 (alex445)

Пример: вот коммиты (типа по номерам)


1-2-3-4-5


5 - плохой. Я беру 4 (команда "Get This Version" в клиенте Azure DevOps для Студии), оставаясь в той же ветке, правлю код и делаю коммит номер 6, который теперь является текущей последней версией. Так можно, без создания параллельных веток и мёрджей?

#47 
MrSanders коренной житель01.08.22 16:54
NEW 01.08.22 16:54 
in Antwort alex445 01.08.22 13:01
Так можно, без создания параллельных веток и мёрджей?

Смотря что делает команда "get this version".

Что говорит git status до и после выполнения этой команды?

#48 
AlexNek патриот01.08.22 17:51
AlexNek
NEW 01.08.22 17:51 
in Antwort alex445 01.08.22 13:01
Так можно

Если один в репо, то делаешь как удобно. Но варианты есть

https://www.cloudbees.com/blog/git-revert-commit


#49 
alex445 коренной житель01.08.22 20:03
NEW 01.08.22 20:03 
in Antwort MrSanders 01.08.22 16:54

Смотря что делает команда "get this version".

Что говорит git status до и после выполнения этой команды?

А я её ещё не выполнял. Я только последнюю версию загружал и коммитил в одну и ту же ветку. Один раз не то закоммитил. Ну я просто поправил код и закоммитил снова - написал, что это за исправление.

#50 
Бесконечный цикл завсегдатай01.08.22 21:15
NEW 01.08.22 21:15 
in Antwort alex445 31.07.22 21:39

Однажды я захотел поэксперементировать на проекте, но при этом: 1) я не знал что выйдет и захочу ли это комитить в основной проект 2) эксперименты жестокие (с кровью) с кучей ковнокода а потому не хотел все это выставлять на показ в публичной ветке. 3) но хотел все-таки историю (по привычке, да и опасно не сохранять историю)


В общем я решил создать отдельный (личный) репо из последнего комита проекта, и далее развивать уже этот новый форк как отдельный проект. Но логически это была ветка, поскольку я не собирался что-то отдельное делать - чисто для экспериментов. Через пару месяцев я подумал, что жалко выкидывать, а потому подчистил и замержил обратно в основной проект (а этот форк удалил). Ну понятно что пришлось конфликты разруливать, а потом еще вручную чистить после мержа (он не все делает, остается мусор), но на удивление все сработало. Это конечно исключение, я так один раз делал, но просто как пример, как можно экспериметны делать.

#51 
AlexNek патриот01.08.22 21:51
AlexNek
NEW 01.08.22 21:51 
in Antwort Бесконечный цикл 01.08.22 21:15
не хотел все это выставлять на показ в публичной ветке

Не понятен смысл отдельного репо. Можно же было просто не "передавать" в публик.

#52 
Бесконечный цикл завсегдатай01.08.22 22:36
NEW 01.08.22 22:36 
in Antwort AlexNek 01.08.22 21:51
Не понятен смысл отдельного репо. Можно же было просто не "передавать" в публик.

Ну да. Но это надо push правильно использовать, а я наверное (по незнанию) опасался, что что-нибудь закину наверх из экспериментов, поэтому выбрал радикальную изоляцию и спал спокойно. В целом наверное неправильный подход, но работает.


#53 
alex445 коренной житель02.08.22 16:22
NEW 02.08.22 16:22 
in Antwort Бесконечный цикл 01.08.22 22:36

А вы пушите лишь то, что в тикете указано? Ну скажем сделал тикет, но заметил неопрятный кусок кода, или опечатку, или ещё что по-мелочи. Правите заодно, заводите новый тикет по помарке, или просто оставляете как есть?


Так-то случайно можно и Ctrl+K, D нажать (автоформатирование - у меня вообще привычка часто эту комбинацию дрюкать) - сразу полно изменений может в трекер изменений залететь.

#54 
akidervish местный житель03.08.22 15:46
NEW 03.08.22 15:46 
in Antwort alex445 02.08.22 16:22
Ну скажем сделал тикет, но заметил неопрятный кусок кода, или опечатку, или ещё что по-мелочи.

Кладешь новый бранч (FixBugs), и правишь там.


Так-то случайно можно и Ctrl+K, D нажать (автоформатирование - у меня вообще привычка часто эту комбинацию дрюкать) - сразу полно изменений может в трекер изменений залететь.


У команды должен быть айнхатлихер стиль написания кода.
Автоформатирование тогда (если оно противоречит стилю) - является ошибкой.
Лечится легко:



git stash
git stash drop

#55 
MrSanders коренной житель03.08.22 16:32
NEW 03.08.22 16:32 
in Antwort akidervish 03.08.22 15:46
Лечится легко:

git stash
git stash drop

Так и до git reset --hard недалеко. Не проще restore сделать?

#56 
alex445 коренной житель03.08.22 16:32
NEW 03.08.22 16:32 
in Antwort akidervish 03.08.22 15:46

Разве нельзя настроить стили так, чтобы они автоформатировали код при отправке-загрузке? Ну а анализатор изменений в репе анализировал бы код на изменения только после автоформата под ваш выработанный стиль?


Мне непонятно, почему "сколько пробелов в отступе" это до сих пор какая-то проблема и тема для обсуждения.

#57 
AlexNek патриот03.08.22 18:17
AlexNek
NEW 03.08.22 18:17 
in Antwort alex445 03.08.22 16:32
чтобы они автоформатировали код при отправке-загрузке?

Странный триггер для авто форматирования. Rider или Resharper нормально справляются с этим, но конечно не автоматом.


"сколько пробелов в отступе" это до сих пор какая-то проблема

Было, есть и будет. Где то удобнее/привычнее 2, где то 4

#58 
alex445 коренной житель03.08.22 21:38
NEW 03.08.22 21:38 
in Antwort AlexNek 03.08.22 18:17

Про автоформатирование я имел ввиду, что код Пети, отформатированный как ему надо, попадая к Васе, автоматом форматируется под Васю. А в репе - под общие требования для репы. Т.е. миддл Петя не орёт на джуна Васю, а тим лид Костя - на них обоих из-за того, что их вкусы по форматированию различаются, т.к. каждый автоматом получает то, что хочет.


Профили форматирования - это рокет сайенс?

#59 
AlexNek патриот03.08.22 22:18
AlexNek
03.08.22 22:18 
in Antwort alex445 03.08.22 21:38
что код Пети, отформатированный как ему надо, попадая к Васе, автоматом форматируется под Васю. А в репе - под общие требования для репы

Так не работает.

Команда должна следовать code style guide. Перечисленные проги в этом хорошо помогают.

#60 
1 2 3 4 alle