[英]How to refine the pattern and remove the brackets in output?
我正在嘗試編寫一個打印對角線圖案的函數。 對此的論據是:
這是我嘗試過的:
def pattern(s, r, g):
for i in range(r):
print(" " * g, ("*", " " * g) * s, end="\n")
但是輸出看起來像這樣:對於 pattern(2,3,4),其中 2 是每行中的星星數,3 是行數,4 是星星之間的間隙數
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
如何在沒有括號的情況下執行此操作?
您正在打印元組。 您需要使用*
運算符解包元組:
def pattern(s, r, g):
for i in range (r):
print(' ' * g, *('*', ' ' * g) * s, end='\n')
pattern(2, 3, 4)
輸出:
* *
* *
* *
您可以再添加一個循環
for i in range (r):
for j in range(s):
print('*', ' '*g, end='')
print('\n')
pattern(3,5,8)
輸出 :
* * *
* * *
* * *
* * *
* * *
或者打印出元組/擴展元組,您可以簡單地打印通過使用+
連接不同字符串部分構建的字符串,例如
def pattern(s, r, g):
for i in range(r):
print(" " * g + ("*" + " " * g) * s, end="\n")
pattern(2, 3, 4)
輸出:
* *
* *
* *
注意這里end="\\n"
是多余的,而且似乎沒有對角線模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.