我正在尝试编写一个打印对角线图案的函数。的参数是:
这是我尝试过的:
def pattern(s, r, g):
for i in range(r):
print(" " * g, ("*", " " * g) * s, end="\n")
但是输出看起来像这样:对于pattern(2,3,4),其中2是每行中的星星数,3是行数,4是星星之间的间隙数
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
如何在没有括号的情况下执行此操作?
答案 0 :(得分:1)
您正在打印元组。您需要使用*
运算符对元组进行解压缩:
def pattern(s, r, g):
for i in range (r):
print(' ' * g, *('*', ' ' * g) * s, end='\n')
pattern(2, 3, 4)
输出:
* *
* *
* *
答案 1 :(得分:0)
您可以再添加一个循环
for i in range (r):
for j in range(s):
print('*', ' '*g, end='')
print('\n')
pattern(3,5,8)
输出:
* * *
* * *
* * *
* * *
* * *
答案 2 :(得分:0)
或者打印出元组/展开元组,您也可以简单地打印通过使用+
连接不同字符串部分而构建的字符串,例如
def pattern(s, r, g):
for i in range(r):
print(" " * g + ("*" + " " * g) * s, end="\n")
pattern(2, 3, 4)
输出:
* *
* *
* *
请注意,end="\n"
在这里是多余的,而且似乎没有对角线图案。