首页 > 解决方案 > 如何细化模式并删除输出中的括号?

问题描述

我正在尝试编写一个打印对角线图案的函数。对此的论据是:

  1. 每行的列数(星)
  2. 行数
  3. 每条线上两个连续星之间的间隙长度。

这是我尝试过的:

def pattern(s, r, g):
    for i in range(r):
        print(" " * g, ("*", " " * g) * s, end="\n")

但是输出看起来像这样:对于模式(2,3,4),其中 2 是每行中的星数,3 是行数,4 是星之间的间隙数

('*', '    ', '*', '    ')
('*', '    ', '*', '    ')
('*', '    ', '*', '    ')

没有括号我怎么能执行这个?

标签: python

解决方案


您正在打印元组。您需要使用*运算符解包元组:

def pattern(s, r, g):
    for i in range (r):
        print(' ' * g, *('*', ' ' * g) * s, end='\n')

pattern(2, 3, 4)

输出

     *      *
     *      *                                                    
     *      *                                            

推荐阅读