奇偶盒

2024-09-14 23:10:11 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我要写的程序使它使偶数成为实心正方形,而奇数成为轮廓正方形。到目前为止,我已经设法设置它,使偶数工作得很好。但是,奇数的正方形丢失了,并且彼此之间没有间隔

#Input

box_size=int(input("Enter square size:"))

if (box_size % 2) == 0:
    box_size=int(box_size)
    for row in range(box_size,0,-1):
        for col in range(row):
            print('*'*row*2,end='')
            print()
        print()

else:
    inner_size = box_size - 2
    print ('*' * box_size)
    for i in range(inner_size,0,-1):
        print ('*' + ' ' * inner_size + '*')
        print ('*' * box_size)
    print()

#Output for even

Enter square size:6
************
************
************
************
************
************

**********
**********
**********
**********
**********

********
********
********
********

******
******
******

****
****

**

#Output for odd

Enter square size:5
*****
*   *
*****
*   *
*****
*   *
*****

#The odd output seems to be missing some * 
#and there's no spaces between them. Each box is 
#supposed be smaller than the last till it reaches zero.

Tags: inboxforoutputsizerangeintrow
1条回答
网友
1楼 · 发布于 2024-09-14 23:10:11

在每次迭代中,您都要在循环中打印框的底部:

for i in range(inner_size,0,-1):
    print ('*' + ' ' * inner_size + '*')
    print ('*' * box_size)
print()

相反,只有当你完全完成了内盒时,才可以这样做:

for i in range(inner_size,0,-1):
    print ('*' + ' ' * inner_size + '*')

print ('*' * box_size)
print()

这会给你一个盒子;你已经知道了如何缩小尺寸,在哪里做平边的

相关问题 更多 >