# Number of zeros at the end

Hello, can anyone tell me why this ist working? I have problem with while and return. number = 1802300 string_number = str(number) list = list(string_number) list.reverse() for i in range (len(list)): number_of_zero = 0 while i == 0: number_of_zero +=1 return number_of_zero It's telling me, that I have return outside function. But I don't know why?

11/13/2021 9:16:25 AM

Jeanie Snow16 Answers

New Answer#do you mean number of zero's at the end? #If yes, then another way using while loop : num = 1802300 number_of_zero =0 while not num%10: number_of_zero +=1 num=num/10 print(number_of_zero)

THIS IS WHAT YOU INTENDED TO DO. 1) return statement is for functions not for the loops, hence you are getting error https://code.sololearn.com/cSK5ICH4UiLm/?ref=app

#I can add another way Str = input() print(len(Str)-len(Str.rstrip('0'))) ''' *using built-in String methods *total - removing the last 0 digits and finding length *the same idea '''

number = 1802300 string_number = str(number) list = list(string_number) list.reverse() #you are dealing with string then no need to reverse here. you can directly work. number_of_zero = 0 #make this outside of loop. inside loop cause reset to 0 every time for i in list: if i == '0': #you if block, ' while ' is a loop, just like for loop. number_of_zero +=1 print(number_of_zero) # 'return' returns a value from function and comes out function but print() function displays output on screen. #Hope it clears.. else reply..Jeanie Snow

Thank you. But I need numbers of 0 after some different numbers. Like for 1802300 I need the numbers of 0 after number 3. This is why I tried reverse the list. Because I wanted just count of 0 before number 3.

Axel_ 1) count method counts all zeros not only just the end zeroes(see your code) 2) NUMBER could be anything so slicing by just seeing the number won't be useful

You have while loop in infinite one. What are you trying with that? If while ,not work then it comes out for loop by return number_of_zero in first iteration. Then why need of loop ..? what the task you trying?

I have a number, for example 1300 . And want to tell how many zeros are at the end. So I convert int to str. Like 1300 - > "1300" then I want to separate the letters like "1","3","0","0" reverse them. "0","0","3"1" And then I would like to count the number of 0, which are before 3. Like while number is zero. Count it. Sorry for bad explanation.

Prabhas Koya your “idea” is awesome, especially using break statement for stopping “counting” nums of zeros!

#You can count last zeroes like this also num=1802300 string_num=str(num) c=0 for i in string_num[::-1]: if i=="0": c+=1 else: break print("Zeroes are",c)