2013-11-02 191 views
1

所以我寫了一些代碼,然後發現有一個更簡單的方法來使用format()函數來完成它。 我的代碼是格式的正確佈局

r = int(input("Please enter a number ")) 
c = int(input("Please enter a number ")) 
numberLength=len(str(r**c)) 
for i in range(1,r+1): 
    for j in range(1,c+1): 
     currentNumber = len(str(i**j)) 
     print(" "*((numberLength-currentNumber)+1),end="") 
     print((i**j),end="")  
    print('') 

但使用格式()函數是更簡潔,但我不能得到正確格式的格式。

r = int(input("Please enter a number ")) 
c = int(input("Please enter a number ")) 
numberLength=len(str(r**c)) 
for i in range(1,r+1): 
    for j in range(1,c+1): 
     currentNumber = i**j 
     {0:>{1}}.format(currentNumber ,numberLength) 

如果您運行第一個片段,您會看到我想要實現的內容。表中每個數字之間的差距取決於程序中的最高數字。謝謝。

回答

2

使用end=' ',默認python使用一個新行,這就是爲什麼所有的數字打印在新的行。當嵌套循環結束時使用空白print()來引入新行。

for i in range(1,r+1): 
    for j in range(1,c+1): 
     currentNumber = i**j 
     print ("{0:>{1}}".format(currentNumber ,numberLength), end=' ') 
    print() 

演示:

Please enter a number 5 
Please enter a number 5 
    1 1 1 1 1 
    2 4 8 16 32 
    3 9 27 81 243 
    4 16 64 256 1024 
    5 25 125 625 3125 
+0

啊!所以我幾乎是正確的,只是在錯誤的地方一些括號。謝謝你,小夥伴! – JamesDonnelly