1

整数の桁の合計を計算して返す関数を作成する必要があります。

これが私のコードです:

def main():
    number1=input("Enter a number: ")
    number=list(number1)
    i=0
    while len(number)!=i:
        numbers=[]
        x=int(number[i])
        numbers.append(x)
        number.remove(number[i])

print(numbers)
x=float(sum(numbers))
print(x)

main()

出力は次のようになります。

Enter a number: 123
[3]
3.0

1と2がリストに含まれておらず、合計の計算に使用されていない理由がわかりません...何か提案はありますか?

4

3 に答える 3

3

numbers ループ内で再初期化します。そうしないでください。代わりに、ループの外側に移動してください。

numbers=[]
while len(number)!=i:
    # ...

そうしないと、すべての桁のリストがリセットされてしまいます。

于 2013-03-07T22:04:19.083 に答える
3

高度なものを試す前に基本を学ぶのは良いことですが、楽しみのために、経験豊富なPythonコーダーがこの問題を解決する方法を次に示します。

def main():
    number1=input("Enter a number: ")  # for Python 2.x, need to use raw_input()
    return float(sum(int(ch) for ch in number1))

x = main()
print(x)

組み込み関数sum()を使用して桁数を合計できます。また、を呼び出している間、文字列を直接ループする「ジェネレータ式」を使用して桁数を取得しますint()

これは、Pythonで間もなく学習する楽しいもののほんの一部です。:-)

于 2013-03-07T22:26:30.133 に答える
0

この種のプログラミングに興味がある場合は、より機能的な方法でそれを行うこともできます。その場合、次のようになります。

def main():
    number1=input("Enter a number: ")  # for Python 2.x, need to use raw_input()
    return float(sum(map(int, number1))

x = main()
print(x)
于 2013-08-19T19:52:55.417 に答える