CSV и JSON · 9 из 15
Звёздный потолок
Вера заказала для второго зала кофейни роспись потолка — летнее ночное небо. Художник прислал эскиз файлом JSON: в нём звёзды с координатами и яркостью и созвездия — какие звёзды соединить линией. Художник торопился: в паре мест в созвездии стоит звезда, которой в списке нет. Расписывать по такому файлу всё равно надо — линии к несуществующим звёздам просто пропустить.
Что сделать
Разберите эскиз потолка из JSON и выпишите отрезки всех линий созвездий; линии к звёздам, которых нет в списке, пропустите.
Что приходит
tekst— JSON строкой: объект с ключами"zvezdy"и"sozvezdiya"
Что вернуть
Список кортежей (x1, y1, x2, y2) — по отрезку на линию, в порядке созвездий и линий в файле.
Допишите функцию linii в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
В эскизе три звезды Лиры и две линии: Вега — Шелиак и Шелиак — Сулафат. Ответ — два кортежа: от Веги (0, 0) к Шелиаку (2, -3) и от Шелиака к Сулафату (4, -3).
linii('{"zvezdy": {"Вега": [0, 0, 1], "Шелиак": [2, -3, 3], "Сулафат": [4, -3, 3]}, "sozvezdiya": {"Лира": [["Вега", "Шелиак"], ["Шелиак", "Сулафат"]]}}')
[(0, 0, 2, -3), (2, -3, 4, -3)]
Пример файла:
{"zvezdy": {"Вега": [0, 0, 1], "Шелиак": [2, -3, 3]},
"sozvezdiya": {"Лира": [["Вега", "Шелиак"]]}}
У звезды — список [x, y, яркость]. У созвездия — список линий, линия — пара имён звёзд. Отрезок линии — (x1, y1, x2, y2): сначала координаты первой звезды пары, потом второй.
Созвездия — в том порядке, в каком они записаны в файле, линии внутри созвездия — тоже. Если хоть одной звезды линии нет в "zvezdy", эта линия пропускается, остальные линии созвездия остаются.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.