Python打印指定星形图案求助:现有代码输出不符预期
解决星形图案打印问题
原代码存在几个问题导致输出不符合预期:
- 外层循环执行6次,而预期图案仅需4行
- 内层循环的
print未设置end='',导致每个星号段单独换行 - 未处理星号间的空格,无法生成
* * *这类带间隔的格式
以下是修改后的代码,可直接实现预期图案:
for i in range(1, 5): # 打印每行前置空格,数量逐行递减1个 print(" " * (4 - i), end="") # 打印带空格分隔的星号,数量逐行递增1个 print(" ".join(["*"] * i))
代码逻辑说明:
range(1,5)控制循环4次,对应图案的4行4 - i计算每行开头的空格数:第1行3个空格,第2行2个,第3行1个,第4行0个" ".join(["*"] * i)将i个*用空格连接,生成符合要求的星号段
也可以用更简洁的写法:
for i in range(1, 5): print(" " * (4 - i) + " ".join(["*"] * i))
内容的提问来源于stack exchange,提问作者Alien_Gaming
相关产品推荐
相关产品推荐

