python - 格式化帕斯卡三角形

标签 python output-formatting pascals-triangle

我目前正在做一项家庭作业,以生成所谓的 Pascal's triangle在Python中。

到目前为止,这就是我所拥有的:

def mytri(myrange):
    trianglevar = [[1]]
    for i in range(1, myrange):
        tempvar = [1]
        for n in range(0, i-1):
            tempvar.append(trianglevar[i-1][n]+trianglevar[i-1][n+1])
        tempvar.append(1)
        trianglevar.append(tempvar)
    return trianglevar

def mymenu():
    for i in mytri(int(raw_input("Please enter the height of the triangle: "))):
        print i
    print '\n'
    choicevar = raw_input("Would you like to create another triangle? (y/n): ")
    if choicevar == "y":
        mymenu()
    else:
        print "Goodbye."

mymenu()

到目前为止,程序所做的是执行三角形的计算。它计算每一行中的数字(从1开始),并在达到用户指定的行数后停止。

但是,我不确定如何格式化我的三角形。目前打印为:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
...etc.

我想要的输出是:

        [1]
      [1, 1]
    [1, 2, 1]
  [1, 3, 3, 1]
[1, 4, 6, 4, 1]
...etc.

(由于括号/逗号,这有点偏离,但我现在只是想弄清楚一般格式。)

感谢您提供的任何帮助!

最佳答案

h = int(raw_input("Please enter the height of the triangle: "))
for i in mytri(h):
    print " " * (h * 2), i
    h -= 1

所以这里为金字塔的每一层打印 2 个空格。第一行缩进两倍高度的空格数。当您下降一级时,缩进量会减少 2。

关于python - 格式化帕斯卡三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4140908/

相关文章:

python - 删除两个正则表达式特殊字符分隔符之间的文本

使用 Sparx Systems Enterprise Architect 将 python 源代码转换为 uml 图

python - 在 pyspark 中同时运行而不是顺序运行 for 循环

python - 从数据框或系列的 Pandas 输出中删除名称、数据类型

PASCAL TRIANGLE 中数字的正确对齐

python - Python 的减量循环比增量循环运行得慢吗?

python - 将本地文件从客户端加载到 dask 分布式集群

Java printff 字符串只输出格式化

bash - 在 bash 中,我如何添加带前导零的整数并维护指定的缓冲区

algorithm - 如何找到帕斯卡三角形中重复的数字的次数?