[英]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.