Как ограничить столбцы в таблице в Python - PullRequest
0 голосов
/ 26 декабря 2018

Вот мой код для печати произведения числа от 500 до этого числа:

num = int(input("Enter a number: "))
table = []
if num > 0:
    for i in range(1,500):
        prod = num * i
        if prod >= 500:
            break
        table.append(prod)
k = len(table)
j = 0
while j < len(table):
    print(table[k-1],end=" ")
    k = k - 1
    j = j + 1

это вывод:

Enter a number: 40
480 440 400 360 320 280 240 200 160 120 80 40 

Теперь, как вы можете видеть,Эти номера печатаются непрерывно в одну строку.Есть ли способ, чтобы выходные данные могли быть в форме таблицы с максимумом шесть столбцов?

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

tab[::-1] возвращает перевернутый список.

for i, val in enumerate(tab[::-1]):
    print(val, end=' ')
    if i and not i % 6:
        print()
0 голосов
/ 26 декабря 2018

Просто измените ваш for на это:

for index,i in enumerate(range(num ,500, num)):
    if index % 6 ==0:
        table.append([])
    table[-1].append(i)

Вывод будет 2-й список, как это:

[[40, 80, 120, 160, 200, 240], [280, 320, 360, 400, 440, 480]]

и для печати:

print(*table, sep='\n')
0 голосов
/ 26 декабря 2018

Попробуйте:

>>> table = [480, 440, 400, 360, 320, 280, 240, 200, 160, 120, 80, 40, 520]
>>> for i in range((len(table)//6)+1):
...    print(*table[i*6:(i+1)*6])
...    if len(table)%6 != 0 and len(table)//6 == i:
...       print(*table[(i+1)*6:])
... 
480 440 400 360 320 280
240 200 160 120 80 40
520

РЕДАКТИРОВАТЬ:

Вы хотите перевернутый список, который ограничен шестью столбцами, поэтому попробуйте это:

table.reverse() # it revreses the list
size = 6        # it's the size of limitation

# it splits the list into 2D list with limitation of "size"
limited_table = [table[i:i+size] for i  in range(0, len(table), size)]

for x in limited_table:
    print(*x)
...