3

I'm trying to figure out how to turn my whole square into a hollow one. The few things I've tried so far haven't been very successful as I end up getting presented with a rather distorted triangle!

This is the code I have to form my square currently ..

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

When run, this is the result ..

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

Do I need to run if or while statements when size is greater than 3 to specify a condition?

4

10 回答 10

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

输出:

*         
**        
* *       
*  *      
*   *     
*    *    
*     *   
*      *  
*       * 
**********
于 2013-04-19T15:48:56.453 回答
3

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

size = 5
inner_size = size - 2
print ('*' * size)
for i in range(inner_size):
    print ('*' + ' ' * inner_size + '*')
print ('*' * size)
于 2013-04-19T15:45:15.020 回答
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

*****
*   *
*   *
*   *
*****
于 2017-05-10T18:08:28.727 回答
1

尝试这个:

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

输出:

*****
*   *
*   *
*   *
*****
于 2017-12-19T11:08:31.577 回答
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
于 2016-12-23T11:50:45.453 回答
0

不错的python库,可以做到这一点......

术语形状 - https://github.com/zvibazak/termshape

from termshape import get_rectangle 
print(get_rectangle(10, 5))
* * * * * * * * * *
*                 *
*                 *
*                 *
* * * * * * * * * *
于 2020-10-11T15:18:45.740 回答
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))
于 2018-04-18T10:21:22.367 回答
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()

输出:图片链接

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

于 2016-10-17T15:45:01.683 回答
0

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

n = int(input("enter num")) for i in range (n+1):

if 2>=i :
    print (i * "*")
elif n == i:
    print ("*" * i)
else:
    print ("*"+" "*(i-2)+"*")
于 2018-04-18T10:54:46.947 回答
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()
于 2020-12-01T23:59:25.047 回答