2017-10-04 82 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 :) –