2017-11-28 5 views
1

私のコード(10を返し、N = 1234場合は、すべての数字の合計n個、元を返すようにコードを書くしようとしている):なぜ私のdigit_sumはPython Code Academyのレッスンで1回だけループしますか?

def digit_sum(n): 
    summation=0 
    while n > 0: 
     digit=n%10 
     summation=n//(10) 
     summation=summation+digit 
     print n 
     return summation 


print digit_sum(244) 

このコードは244を返し、その後、28以下のものではなくなります最後のステップを完了して10を返します。なぜwhileループが切断されるのか知っていますか?

+0

ループに戻ることはほとんど –

答えて

1

あなたのコードと2つの問題があります。

  1. return文は、ループは、それが実行されますので、nの一度だけ

  2. 値が減少されていない実行中に理由ですwhileループの一部であります永遠while n > 0ようn=n//10今それが削減されるとそれを更新

コード:

def digit_sum(n): 
    summation=0 
    while n > 0: 
     digit=n%10 
     n=n//(10) 
     summation=summation+digit 
     # print n 
    return summation 

print digit_sum(244) 

出力:

10 
+0

はそんなにありがとう良いアイデアではありません!非常に役立ちます。 – batman

関連する問題