绘制空心星号squ

2024-04-25 00:57:29 发布

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

我在想如何把我的整个正方形变成中空的。到目前为止,我尝试过的几件事都不太成功,因为我最终得到了一个扭曲的三角形!

这是我现在要形成正方形的代码。。

size = 5
for i in range(size):
    print ('*' * size)

当运行时,这就是结果。。

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

size大于3时,是否需要运行ifwhile语句来指定条件?


Tags: 代码inforsizeifrange语句条件
3条回答

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

n = int(input())
print('*' * n)
for i in range(n-2):
    print ('*' + ' ' * (n-2) + '*')
print('*' * n)

基本上,第一个和最后一个print('*' * n)是绘制顶部和底部的线,for cycle打印主体。

输出示例:N=3

***
* *
***

输出示例:N=5

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

我想这就是你想做的:

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()

输出:

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

您可以打印出一个'*',后面是size-2空格,然后是一个'*'。这将给你“空心”部分。第一行和最后一行需要全长:

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

相关问题 更多 >