How do I print only the last value in a for loop?

2020-08-09 06:48发布

问题:

For the below code, I only want to print the last approximation for the squareroot function, instead of printing out every approximation.

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

回答1:

Just de-denting your print() will work:

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

After the loop, nextguess still has the value form the last cycle. In Python, a loop does not create a new scope. So, everything you create or change in the loop is still available after the loop.



回答2:

If you are using a list, for example, List1 is the List name:

List1 = ["praneeth","Veeru","Avinash","Harsha","Avinash"].

If you would like to print Avinash which is the last element of the list, you can use List1[-1] which returns the last element of the list.



回答3:

You can try doing it with a while loop

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