我已经在C中编写了这个练习,我可以在printf(%2i)和printf(%3i)的帮助下输出格式良好的表格。
如何在数字前面添加Python中的空格以使其看起来更好?
#! python3
# 007.py - Write a program that prints a multiplication table for numbers up to 12.
print('----------------------------------------')
print('Multiplication Table from 1 - 12')
print('----------------------------------------')
print(' 1 2 3 4 5 6 7 8 9 10 11 12')
print('----------------------------------------')
for i in range(1, 13):
if i > 1:
print('\n', end="")
print(' ' + str(i) + ' |', end="")
result = i
for n in range(1, 13):
result = i * n
print(' ' + str(result), end="")
print('\n')
print('----------------------------------------')
输出:
----------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12
----------------------------------------
1 | 1 2 3 4 5 6 7 8 9 10 11 12
2 | 2 4 6 8 10 12 14 16 18 20 22 24
3 | 3 6 9 12 15 18 21 24 27 30 33 36
4 | 4 8 12 16 20 24 28 32 36 40 44 48
5 | 5 10 15 20 25 30 35 40 45 50 55 60
6 | 6 12 18 24 30 36 42 48 54 60 66 72
7 | 7 14 21 28 35 42 49 56 63 70 77 84
8 | 8 16 24 32 40 48 56 64 72 80 88 96
9 | 9 18 27 36 45 54 63 72 81 90 99 108
10 | 10 20 30 40 50 60 70 80 90 100 110
11 | 11 22 33 44 55 66 77 88 99 110 121
12 | 12 24 36 48 60 72 84 96 108 120 132
C代码:
/**
* Write a program that prints a multiplication table
* for numbers up to 12.
* 15.12.2016
*/
#include <stdio.h>
int main(void)
{
int result;
printf ("-----------------------------------------------------\n");
printf ("\tMultiplication Table from 1 - 12\n");
printf ("-----------------------------------------------------\n");
printf (" 1 2 3 4 5 6 7 8 9 10 11 12\n");
printf ("-----------------------------------------------------\n");
for (int i = 1; i <= 12; ++i)
{
if (i > 1)
{
printf ("\n");
}
printf (" %2i | ", i);
result = i;
for (int n = 1; n <= 12; ++n)
{
result = i * n;
printf ("%3i ", result);
}
}
printf ("\n");
printf ("-----------------------------------------------------\n");
return 0;
}
输出:
Multiplication Table from 1 - 12
-----------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12
-----------------------------------------------------
1 | 1 2 3 4 5 6 7 8 9 10 11 12
2 | 2 4 6 8 10 12 14 16 18 20 22 24
3 | 3 6 9 12 15 18 21 24 27 30 33 36
4 | 4 8 12 16 20 24 28 32 36 40 44 48
5 | 5 10 15 20 25 30 35 40 45 50 55 60
6 | 6 12 18 24 30 36 42 48 54 60 66 72
7 | 7 14 21 28 35 42 49 56 63 70 77 84
8 | 8 16 24 32 40 48 56 64 72 80 88 96
9 | 9 18 27 36 45 54 63 72 81 90 99 108
10 | 10 20 30 40 50 60 70 80 90 100 110 120
11 | 11 22 33 44 55 66 77 88 99 110 121 132
12 | 12 24 36 48 60 72 84 96 108 120 132 144
-----------------------------------------------------
答案 0 :(得分:3)
但可以在Python中使用像%2i
这样的东西,就像在C中一样。
旧方式:String Formatting Operations
print(" %2i | " % i)
新方式:Format examples
print(" {:2d} | ".format(i))
答案 1 :(得分:1)
从这里开始,我相信你正在寻找的东西。
https://docs.python.org/2/library/string.html#format-specification-mini-language
我没有时间弄清楚您需要做什么来实施解决方案,但我确定这是您需要的答案。除了Python的最佳部分之外,还有一个逻辑解决方案来解决半抽象问题。
答案 2 :(得分:0)
这样看起来很熟悉:
print ("-----------------------------------------------------")
print ("\tMultiplication Table from 1 - 12")
print ("-----------------------------------------------------")
print (" 1 2 3 4 5 6 7 8 9 10 11 12")
print ("-----------------------------------------------------")
for i in range(1, 13):
print (" %2i" % i, end = " | ")
for n in range(1, 13):
print ("%3i " % (i * n), end="" if n < 12 else "\n")
print ("-----------------------------------------------------")