2011-12-21 6 views
6

文字列または整数の末尾の0の数を返す関数を記述しようとしています。ここで私は何をしようとしており、正しい値を返さない。文字列のPythonでは、文字列または整数の末尾のゼロをどのように数えますか?

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 
+0

「正しい値を返さない」使用しているテストケースに期待される回答と得られた回答を提供すると役に立ちます。 –

+0

このサイトを初めてご利用いただきありがとうございます。 –

+0

あなたは 'i + = 1'と言っていたと思います。 –

答えて

8

これを試すことができます。私は、

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

しかし、まだ:これは、それぞれの末尾の0の

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

私はこのサイトが好きになると言うことができます。あなたたち最高。 –

19

、それはおそらくrstrip()を使用するのが最も簡単です:

In [2]: s = '23989800000' 

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

+1:賢い..... –

1

あなただけの可能性:

  1. あなたは
  2. をチェックしているものの文字列値の長さを取ります
  3. 文字列のコピーから末尾のゼロを切り捨てる
  4. 長さ再びトリムされた文字列の
  5. 古い長さから新しい長さを引いて、後ろにゼロの数を得る。
0

」を数えるよりも簡単かもしれ私は1つは、すでに上記および他がほぼ同様であるが、これを達成するには、2つの方法を発見しましたより良い答えを探しています。

関連する問題