2017-02-12 158 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