在返回函数中等于end =“”的是什么?

时间:2013-10-02 17:03:15

标签: python

我正在自学Python的过程中,并且想知道是否有一个与print()一起用于返回函数的end =“”。例如:

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

给我我想要的结果,但是如何使用return函数为我提供相同的结果呢?

3 个答案:

答案 0 :(得分: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)))

答案 1 :(得分: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))

答案 2 :(得分: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()内),但是值得知道如何为更复杂的情况创建生成器函数。