[英]Not able to remove extra star from pattern
我有我正在嘗試打印的圖案
預期 output:
1 * 2 * 3 * 4 * 5
1 * 2 * 3 * 4
1 * 2 * 3
1 * 2
1
我已經寫了一個代碼,但沒有得到如何添加這個檢查,所以最后一個星不應該被打印[參考上面預期的 output]
n=5
l = [ str(i) + ' *' for i in range(1,n+1) ]
for j in range(1,n+1):
print(' '.join(l))
del l[-1]
我的 output:
1 * 2 * 3 * 4 * 5 *
1 * 2 * 3 * 4 *
1 * 2 * 3 *
1 * 2 *
1 *
您可以使用 print 函數的 sep= 參數來避免將數字轉換為字符串並操作列表:
n=5
for j in range(n):
print(*range(1,n-j+1),sep=' * ')
range(1,n-j+1)
將生成一個逐漸變短的數字列表:
*range(1,n-j+1)
解壓縮值以將它們作為 arguments 傳遞給打印 function,就好像您已經完成了 print(1,2,3,..., sep=' * ')。sep=' * '
參數將使用提供的字符串來分隔打印值而不是單個空格(這是默認設置)可能這可以幫助你
只需簡單地使用slice -> [:-1]
它將為您打印 output
代碼:
n=5
l = [ str(i) + ' *' for i in range(1,n+1) ]
for j in range(1,n+1):
print(' '.join(l)[:-1])
del l[-1]
Output:
1 * 2 * 3 * 4 * 5
1 * 2 * 3 * 4
1 * 2 * 3
1 * 2
1
這是我得到的:
n=5
l = [ str(i) for i in range(1,n+1) ]
for _ in range(1,n+1):
print(' * '.join(l))
del l[-1:]
我基本上只是刪除了列表中的星號並將其用作分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.