Python 画一个空心的星号方块

Python 画一个空心的星号方块,python,Python,我正在想办法把我的整个正方形变成一个空心的。到目前为止,我尝试过的几件事情都不是很成功,因为我最终得到了一个相当扭曲的三角形 这是我目前必须填写的代码 size = 5 for i in range(size): print ('*' * size) 运行时,这是结果 ***** ***** ***** ***** ***** 如果或当大小大于3时,我是否需要运行语句来指定条件?您可以打印一个'*',后跟大小-2空格,然后是一个'*'。这将为您提供“空心”部分。第一行和最后一行需要完

我正在想办法把我的整个正方形变成一个空心的。到目前为止,我尝试过的几件事情都不是很成功,因为我最终得到了一个相当扭曲的三角形

这是我目前必须填写的代码

size = 5
for i in range(size):
    print ('*' * size)
运行时,这是结果

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

如果或当大小大于3时,我是否需要运行
语句来指定条件?

您可以打印一个
'*'
,后跟
大小-2
空格,然后是一个
'*'
。这将为您提供“空心”部分。第一行和最后一行需要完整的长度:

size = 5
inner_size = size - 2
print ('*' * size)
for i in range(inner_size):
    print ('*' + ' ' * inner_size + '*')
print ('*' * size)

我想这就是你想要做的:

m, n = 10, 10
for i in range(m):
    for j in range(n):
        print('*' if i in [0, n-1] or j in [0, m-1] else ' ', end='')
    print()
输出:

**********
*        *
*        *
*        *
*        *
*        *
*        *
*        *
*        *
**********
*         
**        
* *       
*  *      
*   *     
*    *    
*     *   
*      *  
*       * 
**********
也可以通过以下方式绘制三角形:

m, n = 10, 10
for i in range(m):
    for j in range(n):
        print('*' if i in [j, m-1] or j == 0 else ' ', end='')
    print()
输出:

**********
*        *
*        *
*        *
*        *
*        *
*        *
*        *
*        *
**********
*         
**        
* *       
*  *      
*   *     
*    *    
*     *   
*      *  
*       * 
**********
以下是我的例子:

print("Enter width")
width = int(input())
print("Enter height")
height = int(input())

for i in range(height):
    if i in[0]:
        print("* "*(width))
    elif i in[(height-1)]:
        print("* "*(width))
    else:
        print("*"+"  "*(width-2)+" *")

input()
输出:


希望这能帮助其他人,他们想在打印矩形时在星号之间留空格,如果我的代码中有任何错误,请告诉我,因为我自己也是初学者。

这是我的python代码,用于按输入的大小N绘制正方形

size = int(input('Enter the size of square you want to print = '))
for i in range(size):           # This defines the rows
    for j in range(size):       # This defines the columns
        print('*' , end=' ')    # Printing * and " end=' ' " is giving space      after every * preventing from changing line
    print()                     # Giving a command to change row after every column in a row is done

print()                         # Leaving one line
for k in range(size):           # This defines the rows
    print('* ' *size)           # Defines how many times * should be multiplied
n = int(input())
print('*' * n)
for i in range(n-2):
    print ('*' + ' ' * (n-2) + '*')
print('*' * n)
基本上,第一个和最后一个
打印('*'*n)
绘制顶部和底部线条,for循环打印主体

输出示例:N=3

***
* *
***
输出示例:N=5

*****
*   *
*   *
*   *
*****
试试这个:

size = 5
for i in range(1,size+1):
    if (i==1 or i==size):
        print("*"*size)
    else:
        print("*"+" "*(size-2),end="")
        print("*")
输出:

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

下面是我的python 3.6代码,用于使用列大小和行大小输入绘制正方形:

column = int(input("Enter column size : "))
row = int(input("Enter row size : "))
print('* ' * column)
print(('* ' + "  " * (column-2)+ '*'+'\n')*(row -2) + ('* ' * column))

您也可以使用以下简单方法绘制三角形:

n=int(输入(“输入num”)) 对于范围(n+1)内的i:


很好的python库可以做到这一点

termshape-

从termshape导入获取矩形
打印(获取矩形(10,5))
在这段代码中,有2个for循环,这个循环将创建边。“else语句”表示我们的点是否不在边缘,代码将打印空字符(“”)。“i==0”表示上边缘,“i==length-1”表示下边缘。“j==0”将是左边缘,我认为您可以猜出“j==length-1”和“print()”的值


当然,除了第一行和最后一行,在那里你打印
size
'*'s.@Boris一点也没有被黑。当然,“特殊情况还不够特别”。。。除非他们真的是。传奇!非常感谢您快速有效的回答:)结尾部分在结尾做什么?哦,对了,谢谢您为我的问题发布了解决方案,并向我展示了如何做三角形!!似乎我们可以启动一个代码库来打印所有用作初学者练习的星号形状:,,,,,
N=3
N=5
示例输出的结果是否相同?感谢您的报告,伙计,请在解释器上尝试代码;)虽然这可能会回答问题,但如果可能的话,您应该在您的答案中包含此代码块如何回答问题的简短解释。这有助于提供上下文,并使您的答案对未来的读者更有用。好的,我会更加小心。
def emptySquare(length,char):
    for i in range(length):
        for j in range(length):
            if (i == 0 or i == length-1 or j == 0 or j == length-1):
                print(char,end=" ")
            else:
                print(" ",end=" ")
        print()