[英]Adding Headers to a Multiplication Table using for-loops
我正在制作一个产品表,用户提供输入以确定其大小。
列标记为 AZ 行标记为带有“|”的数字在它的旁边。
该程序正确打印所有标题。 唯一的问题是,产品表的打印次数与沿行输入的次数相同。
请参阅附加图像以了解我输入“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
好吧,我知道,美丽在于旁观者的眼睛,但对我来说,如果数字向右对齐,它看起来更有吸引力。 但同样只是对您的代码进行了很小的修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.