質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

1667閲覧

list型の練習をしているのですが...

sasuke_killer

総合スコア42

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/08/15 01:18

list型の扱いを練習するためにinput関数と組み合わせたプログラムを作っています。

こんにちは。
上の通りです。

ゲームが好きなので、入力したキル数を記録して、それまで記録してあったキル数と同じリストに入れます。(キル数は一試合ごとに記録)
そのリストから一試合当たりの平均キル数を計算,表示しようと思っています。

その時にエラーが出てしまいます。

下記コードです。

python3

1while True: 2 kill_count=input("キル数は: ") 3 if kill_count: 4 kill=[1,2,5,6] 5 kill.append(kill_count) 6 list(map(int,kill)) 7 x=len(kill) 8 y=sum(kill) 9 print(y/x) 10 else: 11 print("入力してください")

エラーコードです。

キル数は: 3 #3は入力
[1,2,5,6,3]
Traceback (most recent call last):
File "<stdin>", line8, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

試したこと

if文の条件式に'==True'追加してみました。
しばらくは、ifの条件式が実行されなくてelseの処理になっていましたが、map関数の使い方がpython2対応であったことを知り、python3対応に修正したらなぜかif文が実行されるようになりました。
sumやlenは本に書かれた方法で記述しています。

思ったこと

また、ATOMで書いたコードをファイルではなくコピペをして実行しているのですが、それもこの不具合に関係ありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

mapの結果の代入が必要です。

Python

1kill = list(map(int,kill))

なお、今回の場合だと

Python

1kill_count=int(input("キル数は: "))

と入力を受け取った段階でintにしてしまうのがいいと思います。

投稿2018/08/15 01:22

tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasuke_killer

2018/08/15 01:28

ありがとうございました!
guest

0

python

1kill = [1, 2, 5, 6] 2while True: 3 try: 4 str = input("キル数は: (-1で終了)") 5 if str: 6 count = int(str) 7 if count == -1: 8 break 9 kill.append(count) 10 print("kill =", kill) 11 print(sum(kill) / len(kill)) 12 except ValueError: 13 print("0以上の整数を入力してください")

-1 を入力したら終了するようにしました。
数字でないもの (たとえば a) を入力してもプログラムが終了しないようにしました。

投稿2018/08/15 02:15

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasuke_killer

2018/08/15 12:43

例外処理ってこんな感じで使うんですね。 文法などの理解はしていましたが、イメージが湧きませんでした。 まさに、百聞は一見に如かず、ですね! 回答ありがとうございました!
guest

0

解決しました

ちょっと追加しました。

python3

1while True: 2 kill_count=int(input("キル数は: ")) 3 if kill_count: 4 kill=[1,2,5,6] 5 kill.append(kill_count) 6 x=len(kill) 7 y=sum(kill) 8 print("平均キル数:{}".format(y/x)) 9 print("やり直しますか? はい/いいえ") 10 w=input("どちらにしますか?: ") 11 if w=="はい": 12 print("注意。結果は保持されません") 13 print("") 14 continue 15 elif w=="いいえ": 16 print("終了します") 17 break 18 else: 19 print("はい/いいえ のどちらかを入力してください") 20 else: 21 print("入力してください")

これを見た方で、もし「無駄だなぁ」って思うところがあったら教えていただけると嬉しいです。

追記
自己解決じゃないですw申し訳ない。
でも、載せちゃったので消しません

投稿2018/08/15 01:47

編集2018/08/15 12:44
sasuke_killer

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問