你的逻辑很好,你可以试试def pyramid(h,symbol):
if symbol == "" or symbol == "#":
for i in range(h):
print(" " * (h-i - 1) + "#" * (2 * i + 1))
else:
for i in range(h):
print(" " * (h-i - 1) + symbol * (2 * i + 1))
print()
pyramid(5, "#")
^{pr2}$
你的问题:pyr = print(" " * (h-i - 1) + "#" * (2 * i + 1))。。。。print函数返回None,然后pyr存储{}
return pyr语句返回pyr变量内容和完成pyramid函数
pyramid函数没有调用never
改进代码
你可以删除不必要的,如果def pyramid(h,symbol="#"):
for i in range(h):
print(" " * (h-i - 1) + symbol * (2 * i + 1))
print()
pyramid(5)
你可以返回strdef pyramid(h,symbol="#"):
out = ""
for i in range(h):
out += (" " * (h-i - 1)) + (symbol * (2 * i + 1)) + "\n"
return out
print(pyramid(5))
或者,在线解决方案def pyramid(h,symbol="#"):
return "\n".join((" " * (h-i - 1)) + (symbol * (2 * i + 1)) for i in range(h))
print(pyramid(5))