0

我正在自学 Python,很想知道是否有与 print() 一起使用的 end="" 作为返回函数的等价物。例如:

def shape(num,x):
    for col in reversed(range(num)):
            for row in range(col+1):
                print(x,end="")
            print()

给了我想要的结果,但我将如何使用返回函数来为我提供相同的结果?

4

3 回答 3

4

你问如何返回一个字符串?这是一种方法,遵循您使用的相同形式:

def shape(num,x):
    result = ''
    for col in reversed(range(num)):
            for row in range(col+1):
                result += x 
            result += '\n'
    return result

print (shape(4, '*'), end="")

然而,在字符串上使用+=是不好的形式。随着您继续改进代码,请查看列表推导和str.join()函数。

你可能会得到这样的结果:

    return '\n'.join('*'*(col+1) for col in reversed(range(num)))
于 2013-10-02T17:06:53.430 回答
1

打印返回值:

def shape(num):
    x = 0
    for col in reversed(range(num)):
        for row in range(col+1):
           x += row 
   return x
print(shape(82))
于 2013-10-02T17:06:03.457 回答
0

另一种方法是使用生成器函数:

def shape(num, x):
    for col in reversed(range(num)):
        yield x * (col + 1)

for line in shape(4, '*'):
    print(line)

注意:生成器函数的作用与 Robᵩ 所示的生成器表达式基本相同(在 内'\n'.join()),但值得了解如何为更复杂的情况创建生成器函数。

于 2013-10-02T17:33:17.430 回答