Таблица умножения с правильным форматированием - PullRequest
0 голосов
/ 27 апреля 2018
table = []

row_one = int(input("Enter row number:"))

column = int(input("Enter column number:"))

for j in range(1, row_one + 1):

    for i in range(1, column + 1):
        temp = []
        temp.append(j * i)
        table.append(temp)
print table

Если моя строка и столбец 2 на 2, соответственно.
мой вывод выглядит так:

[[1], [2], [2], [4]]

Тем не менее, он должен выглядеть примерно так:

1 2
2 4

Ответы [ 4 ]

0 голосов
/ 27 апреля 2018

Это должно делать именно то, что вы хотите. Динамический для разных размеров матрицы тоже

table = []

row_one = int(input("Enter row number:"))

column = int(input("Enter column number:"))

for j in range(row_one):
    table.append([])
    for i in range(column):
        table[j].append((j+1) * (i+1))

for row in table:
    for column in row:
        if column != row[len(row) - 1]:
            print column,
        else:
            print column

Выход:

Enter row number:2
Enter column number:2
1 2
2 4
0 голосов
/ 27 апреля 2018

Вы можете печатать с print_function, используя sep='\n'. Вы можете удалить [, ] с некоторым форматированием, но основная идея здесь. Я также исправляю небольшую ошибку, посмотрите на комментарий:

from __future__ import print_function

table = []

row_one = int(input("Enter row number:"))

column = int(input("Enter column number:"))

for j in range(1, row_one + 1):
    temp = []  # temp need to be outside of the loop to work as intended
    for i in range(1, column + 1):
        temp.append(j * i)

    table.append(temp)  # note the identation of this


print(*table, sep='\n')

Выход:

Enter row number:4
Enter column number:4
[1, 2, 3, 4]
[2, 4, 6, 8]
[3, 6, 9, 12]
[4, 8, 12, 16]

Бонус: необходимые однострочники Python

table = [[(j+1) * (i+1) for i in range(column)] for j in range(row_one)]
print(*(' '.join(map(str,line)) for line in table), sep='\n')
0 голосов
/ 27 апреля 2018

Я бы переместил temp=[] за пределы внутреннего цикла и table.append(temp) за пределами внутреннего цикла. Поэтому таблица будет выглядеть так: [[1,2],[2,4]]. Я также отслеживаю самое длинное значение, поэтому знаю, сколько места нужно заполнить в таблице. Я приведу значение к строке, потому что похоже, что оно только для вывода, но это можно сделать позже, если вам нужно сослаться на значения таблицы.

table = []

row_one = int(input("Enter row number:"))

column = int(input("Enter column number:"))
biggest=1
for j in range(1, row_one + 1):
    temp=[]
    for i in range(1, column + 1):
        v=str(i*j)
        temp.append(v)
        if len(v)>biggest:
           biggest=len(v)
    table.append(temp)

for row in table:
  t=[n+' '*(biggest-len(n)) for n in row]
  print ' '.join(t)

Выход (с 2,2 входом)

1 2
2 4

Выход (с 5,5 входами для отображения заполнения)

1  2  3  4  5 
2  4  6  8  10
3  6  9  12 15
4  8  12 16 20
5  10 15 20 25
0 голосов
/ 27 апреля 2018
import numpy as np
table = []

row_one = int(input("Enter row number:"))

column = int(input("Enter column number:"))

for j in range(1, row_one + 1):

   for i in range(1, column + 1):
        temp = []
        temp.append(j * i)
        table.append(temp)
print (np.reshape(table, (row_one, column)))

Выход:

[[1 2]
[2 4]]
...