def num_digits(n): count = 0 while n: count = count + 1 n = n / 10 return count
This is a function that basically says how many digits are in a number. For example, >>>print num_digits(44) 2 >>>print num_digits(7654) 4 This function counts the number of decimal digits in a positive integer expressed in decimal format. I get this function ALMOST completely. The only thing I don't understand is why it eventually exits the loop, and goes off to the second branch. "while n" is confusing me. What I am thinking is that if someone puts "while n" the loop would be infinite. I get what is happening in the function, and I understand why this would work, but for some reason it's confusing me as to how it is exiting the loop after a certain number of times. Help is appreciated, thanks. -- http://mail.python.org/mailman/listinfo/python-list