2016-05-01 66 views
0

我想使用.format()方法打印類似圖案的樓梯。 我想這一點,Python中的格式可變長度

for i in range(6, 0, -1): 
    print("{0:>"+str(i)+"}".format("#")) 

但它給了我以下錯誤:

ValueError: Single '}' encountered in format string 

基本的想法是打印

 # 
    # 
    # 
    # 
# 
# 

與代碼類似於,

for i in range(6, 0, -1): 
    print("{0:>i}".format("#")) 
+0

只需添加括號中的字符串各地正在興建:'打印(( 「{0:>」 + STR(I)+「} 「).format(」#「))' – niemmi

+2

您可以通過format():'print(」{0:> {1}}「。格式(」#「,i))傳遞它的值' –

+0

@AshwiniChaudhary #是固定的。那麼可以將它放入字符串而不是作爲參數?像'「{#:> {0}}」.format(i)',這不起作用。 – BlackShift

回答

1

C urrently您的代碼解釋如下:

for i in range(6, 0, -1): 
    print (("{0:>"+str(i))  +  ("}".format("#"))) 

所以格式字符串是由一個「}」構造,這是不正確的。您需要:

for i in range(6, 0, -1): 
    print(("{0:>"+str(i)+"}").format("#")) 

作品,只要你想:

================ RESTART: C:/Users/Desktop/TES.py ================ 
    # 
    # 
    # 
    # 
# 
# 
>>> 
+0

是的,''}'.format'與典型的'some_object.method'相同。 –