2017-06-30 74 views
-4

I don't know why it is there. If it has something to do with the function diff爲什麼每次執行一次循環時都會收到「無」?

+1

您'打印''diff'的返回值。由於'diff'沒有顯式返回任何東西,它會隱含地返回一個'None'。 –

+0

@Nirbhay:該函數在循環中首先被調用,但直到執行'print differ'時纔得到任何東西,最後該函數沒有返回任何內容,因此您得到'None'。 – lkdhruw

+0

這很有用,起來和工作!謝謝 –

回答

0

功能diff不返回任何東西,這就是爲什麼print diff(z)打印出來只是None。它應該是這樣的

def diff(n): 
    x = n**(1.0/2) 
    y = (n-2)**(1.0/2) 
    differ = x-y 
    return differ 

z = 2 
while z >= 0 and z <= 100: 
    print diff(z) 
    z = z+1 
0

由於註釋正確指出,diff沒有明確的返回值。這不會太糟糕,因爲diff具有打印所需號碼的所需副作用。但是,由於您要求python在while循環中輸出diff的結果,因此每次需要時,都會要求diff提供返回值。你可以通過改變diff來解決這個問題,不要有副作用,而是返回值(簡單地改變printreturn)或者調用函數的副作用,但不要嘗試打印它的返回值(去掉print聲明在while循環中)。

希望這可以幫助

相關問題