【发布时间】:2018-10-09 10:25:43
【问题描述】:
我需要打印一个用户输入 4 个不同参数的树形。枝高、枝宽、茎高和茎宽。我有两个形状,形成树的顶部和底部,但我似乎无法弄清楚如何将它们放在一起,使其看起来像一棵树。我想我需要计算分支的宽度并从中扣除茎,但我不确定。我的输出目前如下所示:
有什么建议吗?
Enter height of the branches: 5
*
***
*****
*******
*********
Enter width of the stem: 5
*****
*****
*****
*****
*****
def pyramid(height):
for row in range(height):
for count in range(height - row):
print(end=" ")
for count in range(2 * row + 1):
print(end="*")
print()
def square(width):
for i in range(width):
for j in range(width):
print('*', end='')
print()
height = int(input("Enter height of the branches: "))
pyramid(height)
width = int(input("Enter width of the stem: "))
square(width)
【问题讨论】:
-
要对齐词干,您需要在每行的开头添加一些空格。多少空间取决于树枝的宽度,而树枝的宽度又取决于树的高度。试着弄清楚高宽的关系(1级->1宽,2级->3宽等);每次你加两个
*,所以应该是双倍吧?然后,您需要放入词干的边距是该宽度的一半,减去词干本身宽度的一半,因此词干的中心最终位于中间。请注意,在这种情况下,只有奇数大小的词干可以完全居中。 -
谢谢!我注意到只有当数字是奇数时它才会完全居中。
-
您应该在其中添加一些错误检查,即高度为奇数且宽度小于
2 * height + 1等 :)
标签: python python-3.x