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