Pull to refresh

Comments 7

print("".join([((" * " if n < 15 else " * \n") if (int(c, 16) & (1 << n)) else ("   " if n < 15 else "   \n")) for c in ["36", "49", "41", "22", "14", "8"] for n in range(16)]))

Кольцо всевластия. С переносами строк правда "костыльно" получилось.

та норм )
1 помещается в 7 бит каждая строка + \n на 8 бите
2 символ умножаем на условие и получаем наличие и отсутсвие
так можем через or указывать

print("".join("\n"*(c==7) or " * "*((i & (1 << c))!=0) or "   " for i in [54,73,65,34,20,8] for c in range(8)))

Вот и новые вопросы для джунов на Python подъехали.

«Тема сисек не раскрыта» (С)
Легко переделывается из сердца:
print('\n'.join(' '.join(*zip(*row)) for row in ([["*" if row==0 and col%3!=0 or row==1 and col%3==0 or row-col==2 or row+col==8 or col==1 and row==1 or col==5 and row==1 else " " for col in range(7)] for row in range(3,-1,-1)])))
  *       *  
*           *
* *   *   * *
  * *   * * 

необязательно использовать генератор списков и сразу распаковывать – можно и обычный генератор в скобки обернуть

Sign up to leave a comment.

Articles