+ 2
Got this one on quiz ( the answer is 2359)
i=1 while i<=10: print(i+1) i*=2 # I need explanation, didn't understand the code
6 odpowiedzi
+ 7
"""
<i> = 1
Repeat while <i> <= 10
  # iteration 1. <i> = (1)
  print <i> + 1 # output 2
  <i> *= 2 # <i> becomes (2)
  # iteration 2. <i> = (2)
  print <i> + 1 # output 3
  <i> *= 2 # <i> becomes (4)
  # iteration 3. <i> = (4)
  print <i> + 1 # output 5
  <i> *= 2 # <i> becomes (8)
  # iteration 4. <i> = (8)
  print <i> + 1 # output 9
  <i> *= 2 # <i> becomes (16)
When we get here, the condition <i> <= 10 no longer satisfies, and the loop cease repetition.
However, to see such output, you'd have to specify `end = ""` argument to customize the end-of-line character used by print() function. If you didn't do it, you'll see 2, 3, 5 and 9 be printed on separate lines.
"""
i = 1
while i <= 10:
    print( i + 1, end = "")
    i *= 2
+ 2
i is 1,2,4,8 each time through the loop
+ 2
✓Iteration 1
Initially i is 1
So now in while loop
Condition satisfies as 1<=10
So it will print 2(because i is 1 so 1+1=2)
Now i value changes as i=i*2
I.e  i=1*2=2
✓Iteration 2
Now i is 2
So now in while loop
Condition satisfies as 2<=10
So it will print 3(because i is 2 so 2+1=3)
Now i value changes as i=i*2
I.e  i=2*2=4
✓Iteration 3
Now i is 4
So now in while loop
Condition satisfies as 4<=10
So it will print 5(because i is 4 so 4+1=5)
Now i value changes as i=i*2
I.e  i=4*2=8
✓Iteration 4
Now i is 8
So now in while loop
Condition satisfies as 8<=10
So it will print 2(because i is 1 so 8+1=9)
Now i value changes as i=i*2
I.e  i=8*2=16
✓Iteration 4
Now i is 16
So now in while loop
Condition doesn't satisfies as 16>10
So it will terminate out.
+ 1
Hi!
Don’t use uppercase letters in ’while’ and ’print’. Also the answer became:
1
2
4
8
(Not 2359.)
i *= 2 means i = i * 2
So the prcocess in the while loop become:
[  head  ]           [      body       ]
i = 1 < 10:    ->  print(1); i = 1*2
i = 2 < 10:   ->  print(2); i = 2*2
i = 4 < 10:   ->  print(4); i = 4*2
i = 8 < 10:   ->  print(8); i = 8*2
i = 16 !< 10: -> stop loop!
0
Start i=1 
The while loop will iterate  as the value of i is <=10 
And print(i+1) that is 1+1 = 2 
Now i will increment as i = i*2 every time 
So according to this iteration the values of i after every incrementation
i = 1,2,4,8
And will print i+1  that is 2359



