2017-10-04 70 views
0

我試圖生成的數字,其中輸出可能是這樣一個簡單的三角形形狀:Python 3中嵌套字符串格式

1 
22 
333 

但是,我不能讓這與嵌套字符串工作格式,我可以達到的最佳效果如下...

 for i in range(1, size+1):  
      line = f'{i}' *i 
      print(f"{line:>{size}}") 

理想情況下,我希望'行'嵌套在打印方法中。有什麼建議麼?

+0

我不明白你在問什麼。 「嵌套在打印方法中」的「行」是什麼意思? – OldGeeksGuide

回答

1

您的「嵌套」格式字符串需要格式化兩次。任何想要第二次保留的花括號首先需要轉義,因此{變爲{{}變爲}}。另外,由於您不能使用前綴f兩次,因此您可以明確地調用format進行第二種格式。

什麼你要找的是這樣的:

for i in range(1, size + 1): 
    line = f"{i}" * i 
    print(f"{{0:>{size}}}".format(line)) 

所以第一個字符串格式轉成f"{{0:>{size}}}"{0:>3},從而達到format明確調用你基本上得到print("{0:>3}".format(line))時。

+0

謝謝你,@Hetzroni :) –