<p>我不知道这是否是您想要的,但它工作得很好:</p>
<pre><code>from operator import add
def pascal(curlvl, newlvl, tri):
if curlvl == newlvl:
return ""
elif curlvl == 0:
tri.append(1)
print (tri)
return pascal(curlvl + 1, newlvl, tri)
else:
tmp = [1]
rt = tri[:-1]
rt.reverse()
# print (map(add, rt, tri[:-1]))
# In Python 3, map returns a generator.
# Wrapping map in list makes this code compatible with
# both Python 2 and 3
tt = list(map(add, rt, tri[:-1]))
if (len(tt) > 0):
tmp.extend(tt)
tmp.append(1)
tri = tmp
print (tri)
return pascal(curlvl + 1, newlvl, tri)
def triLvl():
msg = "Please enter the number of levels to generate:"
triheight = int(input(msg))
if triheight < 1:
print("\n Sorry, the number MUST be positive\n Please try again.")
return triLvl()
else:
return triheight
def main():
triangle = [1]
curlvl = 0
print("Welcome to the Pascal's triangle generator.")
usrTri = triLvl()
print(triangle)
pascal(curlvl, usrTri, triangle)
main()
</code></pre>