我正在制作一个产品表,用户提供输入以确定其大小。
各列标记为 A-Z 这些行由带有“|”的数字标记就在它旁边。
程序正确打印所有标题。唯一的问题是,产品表的打印次数与沿行输入的次数相同。
请参阅附图,了解我输入“3”的尝试。 图像上输入“4”的黑色产品表是答案的格式。
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:4}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
for y in range(1, n+1):
for z in range(1, n+1):
prod = y * z
print('{0:4}'.format(str(prod)), end=' ')
print('\n')
最佳答案
我认为您的代码中只是多了一个循环。我刚刚将其注释掉,现在我认为它有效:
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:4}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
#for y in range(1, n+1):
for z in range(1, n+1):
prod = number * z
print('{0:4}'.format(str(prod)), end=' ')
print()
对于输入 5,打印:
A B C D E
1|1 2 3 4 5
2|2 4 6 8 10
3|3 6 9 12 15
4|4 8 12 16 20
5|5 10 15 20 25
如果您愿意,您可以使用以下格式字符串让您的生活变得更加轻松:
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:>4s}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
#for y in range(1, n+1):
for z in range(1, n+1):
prod = number * z
print('{0:4d}'.format(prod), end=' ')
print()
如果您使用相同的输入运行此程序,您将得到:
A B C D E
1| 1 2 3 4 5
2| 2 4 6 8 10
3| 3 6 9 12 15
4| 4 8 12 16 20
5| 5 10 15 20 25
好吧,我知道,情人眼里出西施,但对我来说,如果数字向右对齐,它看起来更有吸引力。但同样,这只是对代码的一个非常小的修改。
关于python - 使用 for 循环将 header 添加到乘法表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171416/