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

Python三角形图案打印问题:空格输出错误求技术修正

修正三角形数值打印的空格对齐问题

原代码的空格计算存在重复叠加,且未考虑数字位数差异,导致三角形对齐混乱。以下是修正后的代码,同时适配用户输入最大值的需求:

max_num = int(input("请输入范围最大值: "))

max_temp = max_num
no_of_lines = 0
subtractor = 1
while max_temp >= 1:
    no_of_lines += 1
    max_temp = max_temp - subtractor
    subtractor += 1

counter = 1
# 每个元素固定宽度,适配两位数(若最大值为三位数可改为3)
item_width = 2

for i in range(no_of_lines):
    current_items = i + 1
    # 计算左侧居中空格:基于总行宽度与当前行宽度的差值均分
    left_spaces = (no_of_lines * item_width - current_items * item_width) // 2
    print(" " * left_spaces, end="")
    
    line_elements = []
    for _ in range(current_items):
        if counter > max_num:
            line_elements.append(f"{'*':<{item_width}}")
        else:
            line_elements.append(f"{counter:<{item_width}}")
        counter += 1
    print("".join(line_elements))

修改说明

  1. 修复空格计算逻辑:不再重复叠加空格,而是根据总行的最大宽度(行数×元素宽度)与当前行宽度的差值,计算出居中所需的左侧空格,确保三角形整体居中。
  2. 统一元素宽度:用固定宽度格式化每个数字和填充符号*,解决一位数与两位数宽度不一致导致的行内对齐混乱问题。
  3. 改为用户输入最大值:符合需求中“提示用户输入范围最大值”的要求,不再固定为37。
  4. 简化元素拼接:用列表收集行内元素再拼接,代码更简洁易读。

输入最大值37时,输出的三角形会完全居中对齐,最后一行不足的部分用*填充,符合完整三角形的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:47:05