你可以使用加入類似的東西:
for i in range(1, 100, 10): # i = 1, 11, 21, 31, 41,.....
print(' '.join(['%6d' % getPentagonalNumber(n) for n in range(i, i+10)]))
輸出:
1 5 12 22 35 51 70 92 117 145
176 210 247 287 330 376 425 477 532 590
651 715 782 852 925 1001 1080 1162 1247 1335
1426 1520 1617 1717 1820 1926 2035 2147 2262 2380
2501 2625 2752 2882 3015 3151 3290 3432 3577 3725
3876 4030 4187 4347 4510 4676 4845 5017 5192 5370
5551 5735 5922 6112 6305 6501 6700 6902 7107 7315
7526 7740 7957 8177 8400 8626 8855 9087 9322 9560
9801 10045 10292 10542 10795 11051 11310 11572 11837 12105
12376 12650 12927 13207 13490 13776 14065 14357 14652 14950
由你缺少在函數返回的路上getPentagonalNumber()
我在做什麼使用範圍在外環差距10生成的數字:
爲
>>> range(1, 100, 10)
[1, 11, 21, 31, 41, 51, 61, 71, 81, 91]
迴路內創建列表間隙內的數字(實際上會創建一個數字字符串列表),例如
>>> ['%3d' % getPentagonalNumber(n) for n in range(1, 1 +10)]
[' 1', ' 5', ' 12', ' 22', ' 35', ' 51', ' 70', ' 92', '117', '145']
並將數字字符串連接爲單個字符串並進行打印。
你可以只做2個for循環,內循環從1到10嗎? – bornruffians