问题是我的代码运行了,但是没有创建八边形形状。星星的形状类似于一个八边形,但是我需要创建规则形状八边形的代码,我对代码的错误感到困惑。
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))
没有错误消息,但是当用户输入数字时,代码无法产生所需的八边形形状。
答案 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的单个星号有意义。