如何在python中修复星号八边形的代码?

时间:2019-10-05 22:52:27

标签: python

问题是我的代码运行了,但是没有创建八边形形状。星星的形状类似于一个八边形,但是我需要创建规则形状八边形的代码,我对代码的错误感到困惑。

length = int(input("What is the length of one side? "))
for i in range(length):
    print(' ' * (length - i-1) + '*' * (length + i*2))
for i in range(length-1):
    print('*' * ((length * 2)))
for i in range(length):
    print(' ' * (i+1) + '*' * ((length-i)*2))

没有错误消息,但是当用户输入数字时,代码无法产生所需的八边形形状。

1 个答案:

答案 0 :(得分:0)

这应该有效

length = int(input("What is the length of one side? ")) 
for i in range(length - 1): 
  print(' ' * (length - i-1) + '*' * (length + i*2)) 
for i in range(length): 
  print('*' * ((length + 2 * (length - 1))))
for i in range(length - 2, -1, -1): 
  print(' ' * (length - i-1) + '*' * (length + i*2)) 

第二步的公式是错误的,对于最后一部分,您可以重用第一部分的逻辑,但是将其反向运行,希望对您有所帮助:)

修改 我意识到垂直边的数量与长度不匹配,因此这将是该代码的更正,但是对于长度为1的情况,它将显示一个点,如果您考虑一下,它可能会之所以有这样的感觉,是因为对于这种明显的解决方案

** p

***

** p

对角线没有边,所以我认为此编辑版本更好,案例1的单个星号有意义。