Chat:Ru/2021-01-10
Vasyakin: Товарищи, кто может помочь с решением одной задачи на Python?
735487: Vasyakin: чем конкретно помочь?
MadKnight: походу он уже ушёл
yuri32: сайт codingame.com в мобильном браузере очень плохо отбражается, верстка плывет невозможно решать задачки - есть варианты?
735487: yuri32: решать на компе.
735487: либо в браузере принудительно включать пк режим
735487: и мучаться
MadKnight: yuri32 или своё приложение запили
MadKnight: у CG простой апи
Uljahn: а если через CGSync?
MadKnight: а он есть на мобилу?
yuri32: а где этот простой api взять?
MadKnight: в f12
yuri32: http://chat.codingame.com/pastebin/8626774d-59db-495c-94aa-75bef97ddc13
yuri32: совсем не простой апи... xhr запросы к томуже
yuri32: http://chat.codingame.com/pastebin/0f0517ae-933b-4aaf-b822-ff96923c5a47
yuri32: в JSON перед {"code": в запросе идет идентифиактор он у меня постоянный?
MadKnight: ээээ
MadKnight: POST https://www.codingame.com/services/TestSession/getPreviousCodeByLanguageId
MadKnight: RESPONSE
"using System;\nusing System.....
MadKnight: не, это POST https://www.codingame.com/services/TestSession/generateLspToken
MadKnight: либо это не он
yuri32: идею понял, может напишу в поддержку - потому что понять условия задачи прочитать все можно с мобилы - невозможно только отправить ответ так как их IDE очень неправильно отображается в телефоне
yuri32: а если отправлять ответ JSON можно с каким-нибудь токеном (который бы подтвердил что имею право на отправку) тогда ок
Uljahn: это не их IDE, CG использует обычный Monako Editor и онлайн-ассистенты для автодополнений и подсказок
Uljahn: *Monaco
Uljahn: в комментах вычитал: "Monaco doesn't really support touch screens and phone keyboards for some reason" и "physical keyboards or Samsung Dex should work well", и ещё "Install codeboard or hacker's keyboard. You should not have any typing issues after that"
PikalovAlexey: Всем привет. Парни, подскажите. Где можно найти задачи для тренировки кода вот прям совсем новичку в Java
MadKnight: https://www.codingame.com/ide/puzzle/the-descent
MadKnight: https://www.codingame.com/ide/puzzle/coders-strike-back
Uljahn: power of thor ep.1 ещё посмотри, там как и в descent слева есть Hints
Uljahn: новичку тут трудно будет, здесь задания уже для практики в основном
PikalovAlexey: я столкнулся с большими сложностями
Uljahn: вот если уже умеешь кодить, то здесь очень удобно новый язык изучать
Uljahn: я так питон тут учил, имея только древние навыки на паскале
Uljahn: ну и гуглить никто не запрещает, главное знать, как сформулировать вопрос :)
PikalovAlexey: то то и оно. Через сложности преодолеть незнания. Да и другого источника, где есть подобный материал для тренировки нет
Uljahn: для начала неплохо пару онлайн-туториалов пройти по основам языка (синтаксис, control flow, базовые структуры данных), тогда проще будет формулировать поисковые запросы, а там уже на stackoverflow заселяться
Uljahn: джава конечно посложнее питона будет для новичка
PikalovAlexey: да мне так и сказали, но уже начал учить, придется сражаться. А скажи, на stackoverflow заселяться, то есть ты имеешь ввиду активно изучать, что там пишут другие люди?
PikalovAlexey: или там что то особенное придется делать?
Uljahn: не, просто гуглишь "java как сделать то-сё" и смотришь ответы с сайта SO
Uljahn: я так питон учил
Uljahn: гуглил типа "python split string", "python string to int" и т.д., потом копировал код с SO, курил ошибки, постепенно врубился
735487: а вообще если совсем с нуля то может стоит какой нибудь курс пройти онлайн?
TTeaLL: подскажите кто-нить, for i in input().split(): тут подразумевается что сплитим инпут который был получен ранее? это питон если что
735487: TTeaLL: не ранее а считанный прямо здесь. input считывает строку
Uljahn: скорее даже формирует объект (без имени) типа строка из потока чтения stdin, у строк есть встроенный метод split, вызов метода преобразует строку в список путём разбиения по пробелам, в заголовке цикла создаётся итератор по полученному списку, и пока он не исчерпан, переменной i присваивается очередное значение итератора, как-то так
Uljahn: после завершения цикла переменная i будет ссылаться на последний элемент списка
Uljahn: хм, получается, что список не будет удалён сборщиком мусора, пока мы i не переопределим? :thinking:
Uljahn: или только последний элемент зависнет... надо потестить как-то
wlesavo: по логике список в конце цикла удалится, при итерации по элементам списка изменение же не меняет элементы массива
wlesavo: >>> a = [1,2,3,4] >>> for i in a:i=1; >>> a [1, 2, 3, 4]
Uljahn: надо методы у i вызывать, чтобы создать изменения в списке
Uljahn: а так ты просто имя переназначаешь
Uljahn: или так: ones = np.ones((2, 2)) for i in ones: i[1] = 0
MadKnight: wlesavo
MadKnight: ты же просто копию элемента изменяешь лол
Uljahn: нет же
Uljahn: это просто rebinding
MadKnight: крч привыкай к питону wlesavo
Uljahn: import numpy as np for row in np.ones((2, 2)):
row[0] = 0
print(row.base)
Uljahn: ahah
Uljahn: у меня подозрение, что обычные списки всё-таки собираться будут, т.к. на них никто не ссылается
Uljahn: переменная цикла только на один элемент ссылается, вот он останется висеть, пока её не переопределим