将输入转换为 Python 中的多行

Turn an input into a number of rows in Python

我需要编写一个函数来接收输入并将该输入转换为多行,所有行都将相同,所有行看起来像这样“******** **".

我写了这个:

def rows(n):
    row = "*" * 10 
    for i in range(0,n):
        for j in range(0,i):
            print (row)
    
cant = int(input("Choose the number of rows: "))
total = rows(cant)

但是每当我 运行 它,例如输入 4 行它打印 5,如果我使用 5 作为输入它打印 10 行。 None 的输入有效,除非我输入 3,如果我输入 3,它将正确打印 3 行,每行 10 颗星。我该如何解决这个问题?

你的函数太复杂了。

def rows(n):
    row = "*" * 10
    for i in range(0,n): #Makes a loop that runs n times.
        print(row) #Prints the row

编辑解释:
在你的函数中,第一个 for 循环将 运行 n 次,对于每一次,第二个 for 循环将 运行 i 次。意义;
对于输入 n = 4。
第一次通过时,没有打印任何内容,因为第二个循环立即结束,因为 range(0,i) 中的 i 为 0。 第二轮through,i为1,打印调用一次。第三次,i为2,print会被调用两次。第四次也是最后一次,i 为 3,打印将被调用三次,这就是为什么 rows(4) 调用打印 6 行的原因。