input1 = raw_input("Hello enter a list of numbers to add up!")
lon = 0
while input1:
input1 = raw_input("Enter numbers to add")
lon = lon + input1
print lon
このプログラムは与えられたすべての数を加えることになっています。うまくいかないのでリストを作成してみました。
input1 = raw_input("Hello enter a list of numbers to add up!")
lon = []
while input1:
input1 = raw_input("Enter numbers to add")
lon.append(input1)
print sum(lon)
それでもまだうまくいきませんか?何か解決策は?私はPythonの初心者で、約1ヶ月間だけそれをやっています。ありがとう!
回答:
回答№1は2input1= int(raw_input("Enter numbers to add"))
入力するのは文字列なので、キャストする必要があります。これで問題は解決するはずです。
あるいはKeith Randallが指摘したように、 input("Enter numbers to add")
代わりに。
回答№2の場合は0
まず第一に、私はあなたのインデントが正しいと仮定しています(whileループの中のステートメントのためのタブ/スペース) - そうでなければ、あなたはそれを直すべきです。
さらに、raw_inputは文字列を返します。最初の例では、それを "input"に置き換えることができ、そしてそれはうまくいくでしょう。
2番目の例では、文字列を数字に分割して合計を適用することができます。
input1 = raw_input("Enter numbers to add")
lon.extend(map(int, input1.split()))
私は "extend"を使って追加しないことに注意してください - さもなければ、私はそれを新しい番号で拡張するのではなく、リストの中のリスト要素として番号のリストを追加するでしょう。
回答№3の場合は0
空の入力で終了したいかもしれないので、intに変換する前にそれをチェックする必要があります。
print "Hello enter a list of numbers to add up!"
lon = 0
while True:
input1 = raw_input("Enter numbers to add")
if not input1:
# empty string was entered
break
lon = lon + int(input1)
print lon
ユーザーがintに変換できないものを入力した場合、このプログラムはクラッシュするので、このような例外ハンドラを追加することができます
print "Hello enter a list of numbers to add up!"
lon = 0
while True:
input1 = raw_input("Enter numbers to add")
if not input1:
# empty string was entered
break
try:
lon = lon + int(input1)
except ValueError:
print "I could not convert that to an int"
print lon
あなたのプログラムの2番目のバージョンでも同様に、あなたはこれを行う必要があるでしょう
lon.append(int(input1))
上記のような例外ハンドラを追加できます。