 # Write a program to count the total number of digits in a number using a for loop

n=int(input())
count=0
for i in range(n):
n=n//10
count=count+1
print(count)

What is wrong in my code?

Hello , I do not know python as I code in C++ , but I can figure out something that
this for loop should stop when the value of n is 0

`````` for i in range(n):
``
I guess you cannot use for loop here

``````

``````n=int(input("Enter number:"))
count=0
while(n>0):
count=count+1
n=n//10
print("The number of digits in the number are:",count)``````

Basically the issue is that the `for` loop is not the tool for the job; if you have an input value of 999, for example, you don’t really want to loop 999 times, which is what `range(n)` will give you; it won’t get updated by subsequently changing the value of `n`.

The suggestion of a `while` loop is better. If you want to catch the `n==0` case in the same code, start the count at `1` with a division:

``````n = abs(int(input()))
dgts = 1
red = n//10
while red > 0:
dgts += 1
red //= 10
print(dgts)
``````

But also this this can been seen as a typographical question anyway…

``````n = abs(int(input()))
print(len(str(n)))
``````