2013-10-02 34 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()之內),但是值得知道如何爲更復雜的情況創建生成器函數。

相關問題