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

Python打印指定数字图案求助:输入5无法得到目标输出

问题分析与解决方案

目标输入为5时的图案特征:

  • 每行空格数:行数 - 当前行号 个单空格(如第1行4个,第5行0个)
  • 每行数字序列:从 行数 - 当前行号 + 1 开始,连续输出 2*当前行号 -1 个递增数字(如第1行从5开始输出1个,第2行从4开始输出3个,直到第5行从1开始输出9个)
  • 数字无空格分隔,连续输出

现有代码的问题:

  1. 空格数量错误:每个空格输出两个空格字符,导致每行空格数翻倍
  2. 数字逻辑错误:实现了对称回文数字序列,而非连续递增序列
  3. 数字格式错误:每个数字后添加了空格,与目标连续输出不符

修正后的代码

rows = int(input("Enter number of rows: "))

for i in range(1, rows + 1):
    # 打印前置空格:rows - i 个单空格
    print(" " * (rows - i), end="")
    # 计算起始数字
    start_num = rows - i + 1
    # 打印连续数字:共2*i -1个
    for j in range(2 * i - 1):
        print(start_num + j, end="")
    # 换行
    print()

代码说明

  • 前置空格:直接用字符串乘法 " " * (rows - i) 生成对应数量的空格,简洁高效
  • 起始数字:rows - i +1 确保第1行从rows开始,每行起始数字递减1
  • 数字序列:循环 2*i -1 次,每次输出 start_num + j,实现连续递增的数字输出
  • 无多余空格:数字直接连续打印,符合目标格式要求

测试输入5时的输出:

5
   456
  34567
 2345678
123456789

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:01:15