2013-10-02 72 views
0

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

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

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

+3

什么是回归函数? –

+2

这是什么意思?什么是“返回函数”,什么将“结束”在做什么? –

+0

我认为他意味着返回声明 - 我可以看到这将如何混淆新程序员。 – elimirks

回答

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

谢谢。定影。 – raam86

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

感谢您的耐心等待! –

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

相关问题