質問: ### list型の扱いを練習するためにinput関数と組み合わせたプログラムを作っています。 こんにちは。 上の通りです。 ゲームが好きなので、入力したキル数を記録して、それまで記録してあったキル数と同じリストに入れます。(キル数は一試合ごとに記録) そのリストから一試合当たりの平均キル数を計算,表示しようと思っています。 その時にエラーが出てしまいます。 下記コードです。 ``` while True: kill_count=input("キル数は: ") if kill_count: kill=[1,2,5,6] kill.append(kill_count) list(map(int,kill)) x=len(kill) y=sum(kill) print(y/x) else: print("入力してください") ``` エラーコードです。 --------- キル数は: 3 #3は入力 [1,2,5,6,3] Traceback (most recent call last): File "", line8, in TypeError: unsupported operand type(s) for +: 'int' and 'str' 試したこと ----- if文の条件式に'==True'追加してみました。 しばらくは、ifの条件式が実行されなくてelseの処理になっていましたが、map関数の使い方がpython2対応であったことを知り、python3対応に修正したらなぜかif文が実行されるようになりました。 sumやlenは本に書かれた方法で記述しています。 思ったこと ----- また、ATOMで書いたコードをファイルではなくコピペをして実行しているのですが、それもこの不具合に関係ありますか?
回答: mapの結果の代入が必要です。 ``` kill = list(map(int,kill)) ``` なお、今回の場合だと ``` kill_count=int(input("キル数は: ")) ``` と入力を受け取った段階でintにしてしまうのがいいと思います。