En Python, ¿cómo cuento los ceros finales en una cadena o entero?

Estoy tratando de escribir una función que devuelve el número de 0s finales en una cadena o entero. Esto es lo que estoy intentando y no está devolviendo los valores correctos.

def trailing_zeros(longint): manipulandum = str(longint) x = 0 i = 1 for ch in manipulandum: if manipulandum[-i] == '0': x += x i += 1 else: return x 

Puede ser que puedas intentar hacer esto. Esto puede ser más fácil que contar cada ‘0’ final.

 def trailing_zeros(longint): manipulandum = str(longint) return len(manipulandum)-len(manipulandum.rstrip('0')) 

Para cadenas, es probablemente el más fácil de usar rstrip() :

 In [2]: s = '23989800000' In [3]: len(s) - len(s.rstrip('0')) Out[3]: 5 

Usted podría simplemente:

  1. Toma la longitud del valor de cadena de lo que estás comprobando
  2. Recortar ceros finales de una copia de la cadena
  3. Toma la longitud nuevamente, de la cuerda recortada.
  4. Resta la nueva longitud de la longitud antigua para obtener el número de ceros que se arrastran.

Encontré dos maneras de lograr esto, una ya se mencionó anteriormente y la otra es casi similar:

 manipulandum.count('0') - manipulandum.rstrip('0').count('0') 

Pero aún así, estoy buscando una respuesta mejor.