Python打印左对齐直角星号三角形 现有实现是否合理及其他实现方法
问题解答
原代码合理性评价
你的代码可以输出预期的星号三角形,但存在明显的逻辑冗余:内层for循环没有实际起到遍历列的作用,每轮外层循环都会执行5次判断,仅1次满足条件生效,剩下4次都是无效运行,资源利用率很低,不算合理方案。
其他实现思路
1. 最简单循环实现(最常用方案)
直接利用Python字符串的乘法特性,无需内层循环,逻辑清晰高效:
for row in range(1, 6): print('* ' * row)
2. 一行代码实现
用列表推导式加字符串拼接,适合追求简洁写法的场景:
print('\n'.join(['* ' * i for i in range(1, 6)]))
3. 标准双重循环实现(适合嵌套循环练习场景)
如果你是为了练习嵌套循环的逻辑,内层循环应该直接控制每行打印的星号数量,不需要额外判断:
for row in range(1, 6): # 内层循环次数和当前行数一致,逐个打印星号 for col in range(row): print('*', end=' ') # 每行打印完成后换行 print()
内容的提问来源于stack exchange,提问作者user17344362
相关产品推荐
相关产品推荐

