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

Python右对齐阶梯打印时顶部空格失效的问题求助

问题分析与解决

你的右对齐阶梯代码逻辑本身没问题,但实际运行出现异常,大概率是代码编写时的小失误导致的。我们先看正确的实现方式,再对比你的代码找出问题。

正确的右对齐阶梯实现

可以简化代码,去掉多余的分支判断,直接通过循环控制空格和#的数量:

height = int(input("enter height: "))
if height < 1:
    print("invalid height")
else:
    # 从1到height遍历,每次i代表当前行的#数量
    for i in range(1, height + 1):
        # 前置空格数 = 总高度 - 当前#数量
        print(" " * (height - i) + "#" * i)

运行示例(height=5):

enter height: 5
    #
   ##
  ###
 ####
#####

你的代码问题排查

你的代码逻辑是对的,但实际运行第一行缺失空格,可能是以下原因之一:

  1. 缩进错误:如果print((" " * space) + ("#" * count))这一行没有正确缩进在for循环内,会导致循环外先执行一次错误的输出,再进入循环。
  2. 额外的print语句:可能在else块的for循环前不小心添加了print("#"),导致第一行直接输出#。
  3. 变量初始化失误:比如误将space初始值写成了0而非height-1,不过从你给出的代码看这一点不存在。

把你的代码修正后(确保缩进正确,无额外输出),运行结果应该和预期一致:

count = 1
height = int(input("enter height: "))
space = height - 1
if height < count:
    print("invalid height")
elif height == count:
    print("#")
else:
    for x in range(height):
        print((" " * space) + ("#" * count))
        space -= 1
        count += 1

这段代码在无缩进错误的情况下,输入5会输出正确的右对齐阶梯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:37:37