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 AMJeanie Snow
16 AnswersNew Answer
#try this for i in list: if i == '0': number_of_zero +=1 else: break print(number_of_zero)
#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.
Thank you very much. I reverse the list and use this. And it's finally working.
Yes. Thank you very much.
I just tried the task. https://code.sololearn.com/ctfQdSKx2HwL
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.
Thank you very much.
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)