Для ответа @ jumifiki, если вы не понимаете *
перед списком (чего я на самом деле тоже не понимаю), вы можете использовать метод join
:
for row in range(1,10):
print('Row',f'{row:<10}', end="\t\t")
print('\t\t'.join([str(row*col) for col in range(1,13)]), end="\n")
Кроме того, чтобы сделать его еще меньше, вы можете использовать это:
for row in range(1,10):
print(f'Row {row:<10} \t\t', '\t\t'.join([str(row*col) for col in range(1,13)]), end="\n")
Вы можете даже сделать однострочник !!!
print('\n'.join([f'Row {row:<10} \t\t ' + '\t\t'.join([str(row*col) for col in range(1,13)]) for row in range(1, 10)]))
ПРИМЕЧАНИЕ: В верхней части вывода, поскольку предполагается, что должен быть Column
, вы можете использовать его для этой части:
print(f"{'Column':<12} ", end='\t\t ') # Use <12 becuse we have 2 more characters than each row label.
for c in range(1, 13):
print(c, end="\t\t")
print()
Или однострочник:
print(f"{'Column':<12} \t\t", '\t\t'.join(map(str, range(1, 13))))
Если вы хотите, вы можете объединить оба этих оператора печати в ОДИН оператор печати, чтобы все это было напечатано ОДНОЙ ЛИНИЕЙ !! (это немного странно)
print(f"{'Column':<12} \t\t", '\t\t'.join(map(str, range(1, 13))) + '\n' + '\n'.join([f'Row {row:<10} \t\t ' + '\t\t'.join([str(row*col) for col in range(1,13)]) for row in range(1, 10)]))
(я предлагаю вам не использовать это, только для удобства чтения кода)
Надеюсь, это помогло вам!