簡體   English   中英

使用 for 循環將標題添加到乘法表

[英]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')

如果輸入為 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 = 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM