Raktim 0 Report post Posted February 11 Sir, I wrote the same code on Python and C. But the same code give two different result...my C code is... for (i=0;i<10;i++) continue; printf ("%d",i); and the my python code is... for i in range (0,10): continue print (i) The c code give 10 and python give 9 as result. So, what is loop execution process...what is the difference between loop execution process between Python and C? Share this post Link to post Share on other sites
justsomeguy 1,093 Report post Posted February 11 Range just returns a list of numbers from min to (max - 1). Or, 0 through 9. So, i is each number from 0 through 9. You're not telling it to keep adding 1 to i, you're just telling it to loop for each number from 0 through 9. Share this post Link to post Share on other sites
Raktim 0 Report post Posted February 12 (edited) 18 hours ago, justsomeguy said: Range just returns a list of numbers from min to (max - 1). Or, 0 through 9. So, i is each number from 0 through 9. You're not telling it to keep adding 1 to i, you're just telling it to loop for each number from 0 through 9. okay, So, i make a little change to my python code... for i in range (0,10): print(i) print ("value of i after exit from loop",i) The loop will execute until the condition became FALSE. So, the loop will execute from 0 to (10-1) mean 0 to 9 and condition become FALSE when i become 10...(10<10-->False)...am i right? Let me to show that what i thinking... First it print, Loop Body (value of i) Increment (i=i+1) Condition (i<10) Status (T/F) --------------------------------------------------------------------------------------------------------------------------------------- 0 1 1<10 TRUE 1 2 2<10 TRUE 2 3 3<10 TRUE 3 4 4<10 TRUE 4 5 5<10 TRUE 5 6 6<10 TRUE 6 7 7<10 TRUE 7 8 8<10 TRUE 8 9 9<10 TRUE 9 10 10<10 FALSE So, the last value of i became 10 but when i print it show 9...Why? The process is also follows by C, am i right? But in the case of C it shows the result is 10...Why? Edited February 12 by Raktim Share this post Link to post Share on other sites
Raktim 0 Report post Posted February 12 19 hours ago, justsomeguy said: Range just returns a list of numbers from min to (max - 1). Or, 0 through 9. So, i is each number from 0 through 9. You're not telling it to keep adding 1 to i, you're just telling it to loop for each number from 0 through 9. Sir, Range() concept is somewhat difference than For Loop in C? or Same? Share this post Link to post Share on other sites
justsomeguy 1,093 Report post Posted February 12 The loop will execute until the condition became FALSE. So, the loop will execute from 0 to (10-1) mean 0 to 9 and condition become FALSE when i become 10...(10<10-->False)...am i right? No, you're not right. There is no condition, and there is no increment. It is looping through members of a set. In this case, the set is the set of integers from 0 through 9. Maybe it will help you understand if you look at it in array syntax instead of using the range function: for i in [0,1,2,3,4,5,6,7,8,9] Looking at that, why would i ever be 10? Look at another example: for i in ["A", 3, 9, "Cat", 4, 100] Would you look at that, and say that after the loop i is going to be 101? Because that doesn't make sense. i is not going to be set to a value that is not in the set. The only thing that range does is return an array of numbers within a range. There is no condition in the loop, and there is no increment (other than changing an internal array pointer to point to the next element in the array). Share this post Link to post Share on other sites
Raktim 0 Report post Posted Wednesday at 05:17 AM 11 hours ago, justsomeguy said: No, you're not right. There is no condition, and there is no increment. It is looping through members of a set. In this case, the set is the set of integers from 0 through 9. Maybe it will help you understand if you look at it in array syntax instead of using the range function: for i in [0,1,2,3,4,5,6,7,8,9] Looking at that, why would i ever be 10? Look at another example: for i in ["A", 3, 9, "Cat", 4, 100] Would you look at that, and say that after the loop i is going to be 101? Because that doesn't make sense. i is not going to be set to a value that is not in the set. The only thing that range does is return an array of numbers within a range. There is no condition in the loop, and there is no increment (other than changing an internal array pointer to point to the next element in the array). Okay sir , thanks for your helping hand Share this post Link to post Share on other sites