2

だから私は3#の数字を入力してそれを分解するプログラムを書いています。個別の数字を完全に追加する方法を理解するのに問題がありますか?

例:ユーザーは345を入力します

私のプログラムは#を3,4,5に分割しますが、それらの数値を合計するにはどうすればよいですか?

これはこれまでの私のコードです、

#set variable
val = raw_input("Type your three digit number please: ")


print 'The first digit is {}'.format(val[0])
print 'The second digit is {}'.format(val[1])
print 'The third digit is {}'.format(val[2])


#set variable
total = [val[0] +val [1] + val[2]]
total_value = total

print 'The sum of the three digits is' total_value
4

6 に答える 6

6

数値のすべての桁を足し合わせる簡単な方法は次のとおりです。

In [3]: sum(map(int, val))
Out[3]: 12

ここではmap(int, val)、 の文字を反復処理して、valそれぞれを に変換し、これらすべてのintsum(...)加算しますint

このアプローチの良いところは、任意の桁数で機能することです。

元のコードが機能しない理由は、val[0]etc が文字列であるため+です。数値を追加するには、文字をint最初に変換する必要があります。

In [5]: int(val[0]) + int(val[1]) + int(val[2])
Out[5]: 12
于 2013-03-22T09:49:09.360 に答える
3

それらを追加できるようにするには、個々のコンポーネントを数値に変換する必要があります。

total = int(val[0]) + int(val[1]) + int(val[2])

または、より簡潔に:

total = sum(int(x) for x in val)
于 2013-03-22T09:49:13.427 に答える
2

洗練された解決策は、python の組み込み関数mapsumを使用することです。

val = raw_input("Type your three digit number please: ")
total = sum(map(int, val))
print 'The sum of the three digits is', total
于 2013-03-22T09:48:42.067 に答える
1

これを行うだけです:

total = int(val[0]) + int(val[1]) + int(val[2])

の数字valは文字であるため、最初に整数に変換する必要があります。[ ]コードのように影響を受ける値の周りにはないことに注意してtotalください(リストは必要なく、単一の値が必要です)。

于 2013-03-22T09:48:13.743 に答える
1

これを試して:

res = raw_input("Enter value: ")
print sum(map(int, res))
于 2013-03-22T09:48:42.460 に答える