J'essaie d'écrire une fonction qui renvoie le nombre de 0 à la fin d'une chaîne ou d'un entier. Voici ce que j'essaie et il ne renvoie pas les valeurs correctes.
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
5 réponses
Peut-être que vous pouvez essayer de le faire. Cela peut être plus facile que de compter chaque «0» final
def trailing_zeros(longint):
manipulandum = str(longint)
return len(manipulandum)-len(manipulandum.rstrip('0'))
Vous pourriez simplement:
- Prenez la longueur de la valeur de chaîne de ce que vous vérifiez
- Couper les zéros de fin d'une copie de la chaîne
- Reprenez la longueur de la chaîne coupée
- Soustrayez la nouvelle longueur de l'ancienne longueur pour obtenir le nombre de zéros à la fin.
J'ai trouvé deux façons d'y parvenir, l'une est déjà mentionnée ci-dessus et l'autre est presque similaire:
manipulandum.count('0') - manipulandum.rstrip('0').count('0')
Mais quand même, je cherche une meilleure réponse.
La question demande de compter les zéros de fin dans une chaîne ou entier . Pour une chaîne, len(s) - len(s.rstrip('0'))
est très bien. Mais pour un entier, vous ne voulez probablement pas le convertir d'abord en chaîne. Dans ce cas, utilisez la récursivité:
def trailing_zeros(longint):
assert(longint)
return ~longint % 2 and trailing_zeros(longint/2) + 1
Pour les chaînes, il est probablement le plus facile à utiliser rstrip()
:
In [2]: s = '23989800000'
In [3]: len(s) - len(s.rstrip('0'))
Out[3]: 5
Questions connexes
Questions liées
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.