如何在 python 中通过乘号打印矩形形状?

How to print a rectangle shape thru multiplication signs in python?

long = int(input("longueur : "))
larg = int(input("largeur : "))
for i in range(larg):
    if i == 0 or i == larg - 1:
        for j in range(long):
            print("* ", end="")
        print()
    else:
        for j in range(long):
            if j == 0 or j == long - 1:
                print("* ", end="")
            else:
                print(end="  ")
        print()

我试图通过符号实现矩形形状。

我最近开始学习 Python,我正在寻找 faster/cleaner 的方法。

请求的输出是:

*  *  *  *
*        *
*  *  *  *

你可以试试旧的基础 for 循环

rows = 3
columns = 3


for i in range(rows):
    for j in range(columns):
        print('*', end='  ')
    print()

会给

*  *  *  
*  *  *  
*  *  *  

根据你更新的空心问题

for i in range(1, rows + 1):
    for j in range(1, columns + 1):
        if i == 1 or i == rows or j == 1 or j == columns:
            print("*", end=" ")
        else:
            print(" ", end=" ")
    print()

会给

* * * 
*   * 
* * * 

好吧,你可以使用乘法符号:

rows = 3
columns = 5

print(('* ' * columns + '\n') * rows, end = '')

输出:

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

如果你想打印一个空心矩形,它会稍微复杂一些,因为你需要在中间放置不同的行。例如:

for r in range(rows):
    if r == 0 or r == rows - 1:
        print('* ' * columns)
    else:
        print('* ' + '  ' * (columns - 2) + '* ')

输出:

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

这是一个简洁明了的方法...

length = int(input("length: "))
width = int(input("width: "))

for i in range(length):
    print("*  " * width)

您需要使用循环遍历每一行。如果该行是第一行或最后一行,则用 column * '*' 填充它。如果该行是中间那一行,那么添加一个'*',填充适当的空格,最后添加一个'*'。 方法如下:

long = int(input("longueur : "))
larg = int(input("largeur : "))

for i in range(long):
    if (i == 0) or (i == long - 1): # Checking if it is first or last row
        print('* ' * larg) # Printing entire row without gap
    else: # For middle rows
        print('* ' + '  ' *(larg - 2) + '*') # Printing middle rows with gap in between. 

输出:

longueur : 3
largeur : 4
* * * * 
*     * 
* * * * 

longueur : 4
largeur : 7
* * * * * * * 
*           * 
*           * 
* * * * * * *