绘制空心星号正方形

问题描述 投票:0回答:11

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

这是我目前必须形成我的正方形的代码..

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

运行时,这就是结果..

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

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

python
11个回答
8
投票

我想这就是你想做的:

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

输出:

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

3
投票

您可以打印一个

'*'
,后跟
size-2
空格,然后打印一个
'*'
。 这将为您提供“空心”部分。 第一行和最后一行需要全长:

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

2
投票

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

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

基本上第一个和最后一个

print('*' * n)
正在绘制顶部和底部线,for循环打印主体。

输出示例:N=3

***
* *
***

输出示例:N=5

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

1
投票

试试这个:

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

输出:

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

0
投票

这是我的例子:

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

输出:图片链接

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


0
投票
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

0
投票

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

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

0
投票

您还可以使用这种简单的方法绘制三角形:

n = int(input("输入数字")) 对于范围 (n+1) 内的 i:

if 2>=i :
    print (i * "*")
elif n == i:
    print ("*" * i)
else:
    print ("*"+" "*(i-2)+"*")

0
投票

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

termshape - https://github.com/zvibazak/termshape

from termshape import get_rectangle 
print(get_rectangle(10, 5))
* * * * * * * * * *
*                 *
*                 *
*                 *
* * * * * * * * * *

0
投票

在此代码中,有 2 个 for 循环,这些循环将创建边。而“else statements”表示如果我们的点不在边缘上,代码将打印空字符(“”)。 “i == 0”显示上边缘,“i == length - 1”显示下边缘。 “j == 0”将是左边缘,我想你可以猜出“j == length - 1”和“print()”是什么。

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

0
投票

定义主函数(): #我们需要长度、宽度和键盘字符

length = eval(input("Please enter the length of the box: "))
width = eval(input("Please enter the width of the box: "))
character = ord(input("Please enter the character you want to use: "))

#for i in range(length):
print((length)*chr(character))# thats ur top

for i in range(width - 2):
    print(chr(character) + (" " * (length-2)) + chr(character))
    #print((" " * (width-1)) + chr(character)  )
    

print((length)*chr(character))

主要()

-- 我把这作为我的计算机课的第四节。玩得开心!

© www.soinside.com 2019 - 2024. All rights reserved.