You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入为6时空心倒半金字塔代码输出7个星号的问题排查

问题分析与修复

你的代码问题出在条件判断结构和多余输出语句上:

  • 当i == n时,第一个独立if执行print(n*'*', end='')后,会继续判断第二个if,由于i == n不满足i>1 and i<n,会进入else分支额外打印一个*,导致第一行多了1个星号(6+1=7)。
  • 循环末尾的print()会在每一行后多输出一个空行,破坏整体格式。

修正后的代码

n = int(input())

for i in range(n, 0, -1):
    if i == n:
        print('*' * n)
    elif 1 < i < n:
        print('*' + ' ' * (i - 2) + '*')
    else:
        print('*')

代码说明

  • 改用if-elif-else结构,确保每个循环迭代只会执行一个输出分支,避免重复打印。
  • 移除多余的print(),每个分支直接输出对应行的内容,保证格式匹配需求。
  • 输入6时,输出结果完全符合你要的空心倒半金字塔:

**
*

内容的提问来源于stack exchange,提问作者Avinash Jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:24:26