2017-08-09 46 views
0

當卸下空白我有以下代碼:使用圖示操作者

print(*[((i+1) * '*' + '\n') for i in range(rows)]) 

產生的輸出:

* 
** 
*** 
**** 
***** 

所需的輸出是:

* 
** 
*** 
**** 
***** 

與單個敷貼行,這怎麼能做到?我嘗試使用.strip(' ')像這樣:

print(*[((i+1) * '*' + '\n').strip(' ') for i in range(rows)]) 

但它會產生相同的結果。同樣的,.replace(' ', '')

回答

2

傳遞sep參數爲空字符串:

>>> print(*[((i+1) * '*' + '\n') for i in range(rows)], sep='') 
* 
** 
*** 
**** 
***** 

或者使用'\n'.join打印前建立字符串:

>>> print('\n'.join((i+1) * '*' for i in range(rows))) 
* 
** 
*** 
**** 
***** 
+0

比我快。 – chthonicdaemon

1

你可以得到你想要的輸出兩種方式。如果你堅持使用參數擴展(「splat operator」),你可以通過sep=''。或者你可以用join構建你想要的字符串:

print('\n'.join((i+1) * '*' for i in range(rows)))