Home > OS >  New to Python; trouble understanding the output of a for loop statement
New to Python; trouble understanding the output of a for loop statement

Time:11-27

With an input of

6

And the code:

stop = int(input())
result = 0
for n in range(10):
    result  = n   2
    if result > stop:
        break
    print(n)
print(result)

The result is:

0
1
9

I'm still pretty new to Python and coding in general. I don't know if I'm going down the right path in trying to "translate" the code in my head into something more digestible? Here's how I read it:

We start with 0. We assign the variable n, and there are 10 n in the range. We take the result variable, and add itself n 2. Itself is 0, n is 0, so result becomes 2. Since the variable result is less than the input, which is 6, we print n, which is 0. So that part I get.

The next output is 1. I get that because it's the next n in range. And result then increases to n n 2, which would be 2 2 2. So we're at six, now. The output being 0, 1, I get. The next one I feel like should be 2? But it's 9. Why? Where does this 9 come from?

CodePudding user response:

The 9 is coming from the print(result). You broke out of the loop because 9 > 6, so you don't do any more print(n) calls.

CodePudding user response:

Your print(result) is outside your loop, so you print(n) on the first two loop (0, 1) then it breaks and you print results which is (2 3 4=9).

CodePudding user response:

At each step of the loop result increases by n 2, at each step n increases by 1

Step 0
result = 0

Step 1
n = 0
result = 0 (0 2) = 2
-> 0 is printed

Step 2
n = 1
result = 2 (1 2) = 5
-> 1 is printed 

Step 3
n = 2
result = 5 (2 2) = 9
result is greater than 6: loops break

-> 9 is printed
  • Related