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

帕斯卡三角构建问题:输出不符合预期,寻求解决方案

修正帕斯卡三角代码的问题

问题分析

你的代码存在两个核心问题:

  • 生成帕斯卡三角的逻辑未封装到generate_pascals_triangle函数中,调用该函数时会触发NameError。
  • 打印逻辑仅做了简单的空格分隔,未实现居中对齐,无法输出金字塔样式的预期效果。

修正后的完整代码

def generate_pascals_triangle(num_rows):
    triangle = []
    for i in range(num_rows):
        row = [1] * (i + 1)
        for j in range(1, i):
            row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
        triangle.append(row)
    return triangle

def print_pascals_triangle(triangle):
    # 计算最长行的长度,用于居中对齐
    max_width = len(" ".join(map(str, triangle[-1]))) if triangle else 0
    for row in triangle:
        row_str = " ".join(map(str, row))
        # 居中打印每行,生成金字塔样式
        print(row_str.center(max_width))

try:
    num_rows = int(input("Enter the number of rows for Pascal's Triangle: "))
    if num_rows <= 0:
        print("Please enter a positive integer.")
    else:
        pascals_triangle = generate_pascals_triangle(num_rows)
        print_pascals_triangle(pascals_triangle)
except ValueError:
    print("Invalid input. Please enter a valid integer.")

修正说明

  1. 封装生成函数:将原有的三角生成逻辑完整放入generate_pascals_triangle函数内,确保函数调用时能正常执行。
  2. 添加居中对齐:在打印函数中先计算最后一行(最长行)的字符串长度,再用str.center()方法将每行居中显示,实现金字塔样式的输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:10:11