В Python как подсчитать конечные нули в строке или целом числе? - PullRequest
10 голосов
/ 21 декабря 2011

Я пытаюсь написать функцию, которая возвращает число конечных 0 в строке или целом числе.Вот то, что я пытаюсь, и он не возвращает правильные значения.

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

Ответы [ 4 ]

27 голосов
/ 21 декабря 2011

Для строк это, вероятно, самый простой способ использования rstrip():

In [2]: s = '23989800000'

In [3]: len(s) - len(s.rstrip('0'))
Out[3]: 5
12 голосов
/ 21 декабря 2011

Может быть, вы можете попробовать сделать это.Это может быть проще, чем считать каждый трейлинг «0»

def trailing_zeros(longint):
    manipulandum = str(longint)
    return len(manipulandum)-len(manipulandum.rstrip('0'))
1 голос
/ 21 декабря 2011

Вы можете просто:

  1. Взять длину строкового значения того, что вы проверяете
  2. Обрезать конечные нули из копии строки
  3. Снова возьмите длину обрезанной строки
  4. Вычтите новую длину из старой длины, чтобы получить количество нулей в конце.
0 голосов
/ 26 февраля 2013

Я нашел два способа добиться этого, один уже упоминался выше, а другой почти похож:

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

Но все же я ищу лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...