2017-02-12 195 views
-1

對於下面的代碼,我只想打印squareroot函數的最後一個近似值,而不是打印出每個近似值。如何僅打印for循環(Python)中的最後一個值?

def square(x): 
    guess = int(x/2) 
    for i in range(1,10): 
     nextguess = (guess + x/guess)/2 
     guess=nextguess 
     print(nextguess) 
+2

爲什麼不在循環之外輸出'guess'?這應該做你想做的。 – Reaper

+0

是的,這工作,以及謝謝 –

回答

0

只是去削弱你的print()將工作:

def square(x): 
    guess = int(x/2) 
    for i in range(1,10): 
     nextguess = (guess + x/guess)/2 
     guess=nextguess 
    print(nextguess) 

循環後,nextguess仍然具有價值形成上個週期。 在Python中,循環不會創建新的作用域。因此,在循環之後,您在循環中創建或更改的所有內容仍然可用。

+0

我寧願'打印(猜)',它具有相同的值,但它保證被定義。 – Bakuriu

+0

因爲'我在範圍(1,10):'是硬連線,'nextguss''將在這裏定義。 –

-2

你可以嘗試用while循環做

def square(x): 
    guess = int(x/2) 
    i = 1 
    while (i < 10): 
     nextguess = (guess + x/guess)/2 
     guess=nextguess 
     i = i + 1 
    print(nextguess) 
+0

這似乎工作,謝謝! –

+0

你有沒有機會:1)點擊編輯器中的{}'按鈕,然後* * 2)粘貼內容?請不要這樣做:它會打破縮進。你應該先*粘貼代碼,然後選擇它並按'{}'。 – Bakuriu