2016-12-01 3 views
0

Я написал простую программу, которая имитирует трюк магической карты. Я не чувствовал необходимости публиковать всю программу, так как она работает гладко, проблема заключается в том, чтобы найти способ отображения 6 сеток чисел для выбора пользователем.Как отобразить сетку чисел аккуратно?

Я написал его с помощью Python 2.7

В примере кода ниже я только что показал 2 из сетки, и как я печатаю их, на самом деле это улучшение, как это было, как я добавил (\ п) следующая строка. Данные отображаются очень неорганизованным образом. Это просто выглядит неопрятно. Если я играю с интервалом и получаю его kinda приятный внешний вид, все это легко отменить конечным пользователем, имеющим разные размеры окна.

Есть ли что-то встроенное в Python для отображения сетки чисел или таблицы аккуратно? Или дополнительный модуль для отображения сетки чисел, который довольно прост в использовании?

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

Каждая сетка имеет 32 номера, чтобы его можно было разделить на таблицу 4 х 8 или сетки

GRID_1 = ['32....33....34....35 \n36....37....38....39', 
      '40....41....42....43 \n44....45....46....47', 
      '48....49....50....51 \n52....53....54....55', 
      '56....57....58....59 \n60....61....62....63'] 

GRID_2 = ['8.....9.....10....11 \n12....13....14....15', 
      '24....25....26....27 \n28....29....30....31', 
      '40....41....42....43 \n44....45....46....47', 
      '56....57....58....59 \n60....61....62....63'] 

print ("\n\nHere is Grid Number: 1\n\n") 
print (GRID_1) 
print ("\n\nHere is Grid Number: 2\n\n") 
print (GRID_2) 

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

ответ

0

Это функция, которая принимает итератор значений и выводит их в виде сетки шириной 4

def grid_print(it): 
    for x in zip(*[iter(it)]*4): 
     print('{:<4}{:^6}{:^6}{:^6}'.format(*x)) 
+0

Это было больше, что мне было нужно, так как оно не требует дополнительных модулей, это дало мне опрятный вид, но он все еще удваивается в одном разделе. – raser

+0

Что вы подразумеваете под удвоением? вы можете подумать о том, чтобы поместить пустой вызов 'print' после звонков на' grid_print' –

+0

Теперь это нормально, добавив (\ n) в несколько ключевых мест, чтобы отбросить строки с «удвоенным» вниз, и отображает цифры в аккуратном grid, эта функция была очень полезна, я реализовал ее во всей программе, просто изменив ее номера, и она работает хорошо. Это было именно то, что я искал, сетки теперь аккуратно отображаются и выглядят идеально. Благодарим вас за помощь, я новичок на сайте, поэтому не понимаю, как делать голосование (я слышал, что люди говорят о повышении и т. Д., Но я еще не вижу этот вариант в своем аккаунте) В любом случае Спасибо вам, сэр – raser

0

Там есть библиотека для этого

Data pretty printer Python 2

Data pretty printer Python 3

+0

я проверил из-за ссылки, довольно принтер выглядит как действительно хороший набор инструментов, но, возможно, немного сложный для моего понимания - я не мог видеть ничего связанного к таблицам на странице документов. – raser

Смежные вопросы