微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python中制作正方形

如何解决如何在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 举报,一经查实,本站将立刻删除。