如何解决如何在python中制作正方形
k=int(input('n:'))
def square(n):
lines = ['*' * (n - i) + " " * i for i in range(n)]
for l in lines + lines[-2::-1]:
print(l + l[::-1])
square(k)
我正在编写一个代码来打印带有星星的方块。如果我在 n 中放入 2,则该正方形必须是 3x3 正方形,但它会打印 4x3 正方形。如果我在 n 中放入 4,则必须有一个 7x7 的正方形,但它会打印 8x7 的正方形。中间的空白方块每边必须有 n 个星星。我必须在哪里更改才能解决此问题?
解决方法
顶线和底线需要一个特殊情况,在那里你需要少一颗星。
(这是因为如果你看这个图案,它几乎就像中心星有两颗重叠的星星在彼此的顶部,这减少了一颗可见的星星)
我会这样写:
def print_line(n,i,gap):
if i == 0:
print('*' * (2*n-1))
else:
print('*' * (n-i) + ' ' * (gap-1) + '*' * (n-i))
def square(n):
gap = 0
for i in range(n):
print_line(n,gap)
gap += 2
gap = 2*n - 4
for i in reversed(range(n-1)):
print_line(n,gap)
gap -= 2
square(10)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。