3

私が持っているとしましょう

num = 123456

21である数字の合計を取得するにはどうすればよいですか? sum() 関数の使い方 sum(num) を試しましたが、「int」オブジェクトは反復可能ではないと表示されます。

4

4 に答える 4

13

最初に文字列に変更する必要があります:

In [24]: num = 123456

In [25]: sum(int(x) for x in str(num))
Out[25]: 21

文字列に変換しない場合:

def solve(n):
    summ=0
    while n:
        summ+= n%10
        n/=10
    return summ
   ....: 

In [38]: solve(123456)
Out[38]: 21
于 2013-04-28T18:19:43.730 に答える
3

次のように実行できます。

sum(map(int,list(str(num))))  #sum contains your digits string

str(num) は数値の文字列バージョンを返し、list(...) は文字列からリストを作成し (char by char)、map(int,string) はリストに整数キャストを適用します。これで、リストに数値の単一の整数がすべて含まれるようになったので、sum() 関数を使用できます。

于 2013-04-28T18:38:59.527 に答える