私が持っているとしましょう
num = 123456
21である数字の合計を取得するにはどうすればよいですか? sum() 関数の使い方 sum(num) を試しましたが、「int」オブジェクトは反復可能ではないと表示されます。
私が持っているとしましょう
num = 123456
21である数字の合計を取得するにはどうすればよいですか? sum() 関数の使い方 sum(num) を試しましたが、「int」オブジェクトは反復可能ではないと表示されます。
最初に文字列に変更する必要があります:
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
次のように実行できます。
sum(map(int,list(str(num)))) #sum contains your digits string
str(num) は数値の文字列バージョンを返し、list(...) は文字列からリストを作成し (char by char)、map(int,string) はリストに整数キャストを適用します。これで、リストに数値の単一の整数がすべて含まれるようになったので、sum() 関数を使用できます。