第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何確保創(chuàng)建數(shù)字金字塔時間距一致(Python)

如何確保創(chuàng)建數(shù)字金字塔時間距一致(Python)

慕哥6287543 2023-10-05 16:46:22
我正在嘗試用 python 創(chuàng)建一個數(shù)字金字塔,這是我到目前為止的代碼:for i in range(1, height+1):? ? for j in range(1, height-i+1):? ? ? ? if j > 9:? ? ? ? ? ? print(len(str(j)) * " ", end=" ")? ? ? ? else:? ? ? ? ? ? print(" ", end=" ")? ? for j in range(i, 0, -1):? ? ? ? print(j, end=" ")? ? for j in range(2, i + 1):? ? ? ? print(j, end=" ")? ? print()這是輸出:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2 1 2?? ? ? ? ? ? ? ? ? ? ? ? ? ?3 2 1 2 3?? ? ? ? ? ? ? ? ? ? ? ? 4 3 2 1 2 3 4?? ? ? ? ? ? ? ? ? ? ?5 4 3 2 1 2 3 4 5?? ? ? ? ? ? ? ? ? 6 5 4 3 2 1 2 3 4 5 6?? ? ? ? ? ? ? ? 7 6 5 4 3 2 1 2 3 4 5 6 7?? ? ? ? ? ? ? 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8?? ? ? ? ? ? 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9?? ? ? ? ? 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10?? ? ? ? 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11?? ? ? 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12?? ? 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13?? 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14?15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15?據(jù)我所見,代碼在高度 <= 9 時工作正常,但一旦輸入兩位數(shù),對齊就會失敗。我還需要確保每個數(shù)字之間的間距一致(每個數(shù)字之間有一個空格),但我研究過的解決方法涉及添加多個空格。如果有什么需要澄清的地方,請告訴我,并提前感謝您的寶貴時間!
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

您可以使用字符串格式來定義字段的固定寬度,并用空格或零填充。


field_len = len(str(height))

for i in range(1, height+1):

    for j in range(1, height-i+1):

        print(" " * field_len, end=" ")

    for j in range(i, 0, -1):

        print(f"{j:{field_len}}", end=" ")

    for j in range(2, i + 1):

        print(f"{j:{field_len}}", end=" ")

    print()

產(chǎn)生


                                           1 

                                        2  1  2 

                                     3  2  1  2  3 

                                  4  3  2  1  2  3  4 

                               5  4  3  2  1  2  3  4  5 

                            6  5  4  3  2  1  2  3  4  5  6 

                         7  6  5  4  3  2  1  2  3  4  5  6  7 

                      8  7  6  5  4  3  2  1  2  3  4  5  6  7  8 

                   9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 

               10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 

            11 10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 11 

         12 11 10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 11 12 

      13 12 11 10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 11 12 13 

   14 13 12 11 10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 11 12 13 14 

15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 

并且會根據(jù)位數(shù)的變化自動調(diào)整間距。


這使金字塔的斜率保持不變,盡管內(nèi)部數(shù)字的對齊方式似乎變得更加稀疏,因為它們被填充到兩個空間中。


解決方案就是使用當(dāng)前數(shù)字的寬度作為空格數(shù) - 我們可以通過將參數(shù)更改為range()打印空格的位置來實現(xiàn),以實際從高度倒數(shù)。


for i in range(1, height+1):

    for j in range(i, height):

        print(" " * len(str(j + 1)), end=" ")

    for j in range(i, 0, -1):

        print(j, end=" ")

    for j in range(2, i + 1):

        print(j, end=" ")

    print()

這會產(chǎn)生一個坡度不均勻但間距均勻的金字塔。


                                  1 

                                2 1 2 

                              3 2 1 2 3 

                            4 3 2 1 2 3 4 

                          5 4 3 2 1 2 3 4 5 

                        6 5 4 3 2 1 2 3 4 5 6 

                      7 6 5 4 3 2 1 2 3 4 5 6 7 

                    8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 

                  9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 

               10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 

            11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 

         12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 

      13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 

   14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 


查看完整回答
反對 回復(fù) 2023-10-05
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

為了完整起見,我將提供解決此問題的另一種方法。主要思想是跟蹤當(dāng)前行的長度并使用rjust您想要的任何定界符進行填充(我選擇了默認(rèn)的空白)


height = 16

max_line_len = len(' '.join([str(i) for i in range(height,0,-1)] + [str(i) for i in range(2,height+1)]))

half_max_line_len = int((max_line_len+1)/2)

list_of_nums = [str(1)]

print('creating pyramid...')

for num in range(1, height+1):

    print(' '.join(list_of_nums).rjust(half_max_line_len))

    list_of_nums = [str(num+1)] + list_of_nums + [str(num+1)]

    half_max_line_len += len(str(num+1))+1

輸出:


creating pyramid...

                                     1

                                   2 1 2

                                 3 2 1 2 3

                               4 3 2 1 2 3 4

                             5 4 3 2 1 2 3 4 5

                           6 5 4 3 2 1 2 3 4 5 6

                         7 6 5 4 3 2 1 2 3 4 5 6 7

                       8 7 6 5 4 3 2 1 2 3 4 5 6 7 8

                     9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

                  10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10

               11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11

            12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12

         13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13

      14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14

   15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


查看完整回答
反對 回復(fù) 2023-10-05
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號