繁体   English   中英

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

[英]What is the equivalent to end=“” in a return function?

我正在自学习Python,很想知道是否有与print()的end =“”等效的返回函数。 例如:

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

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

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

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

打印返回值:

def shape(num):
    x = 0
    for col in reversed(range(num)):
        for row in range(col+1):
           x += row 
   return x
print(shape(82))

您可以执行此操作的另一种方法是使用生成器函数:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM