Day 78平均値と中央値の計算
Pythonコード
1numbers = []2for i in range(5):3 while True:4 try:5 num = float(input('数値を入力してください:'))6 numbers.append(num)7 break8 except ValueError:9 print('数値以外の入力です。再入力してください。')10numbers.sort()11print('入力された数値:', numbers)12print('平均値:', sum(numbers) / len(numbers))13if len(numbers) % 2 == 0:14 mid1 = numbers[len(numbers) // 2 - 1]15 mid2 = numbers[len(numbers) // 2]16 print('中央値:', (mid1 + mid2) / 2)17else:18 print('中央値:', numbers[len(numbers) // 2])
解説
- 行1〜2: まず、空のリスト numbers を作成し、5 回の入力ループを開始します。
- 行3〜9: 入力は数値として扱うため、float() で変換します。入力ミスを防ぐために try/except を使用しています。入力された数値を numbers リストに追加し、入力ミスがあれば再入力するように促します。
- 行10: 入力された数値を sort() で昇順に並べ替えます。sort() はリスト内の要素を並べ替える関数です。
- 行11〜12: 並べ替えた数値と平均値を出力します。平均値は、sum() で合計し、len() で要素数を数えて割ることで計算します。sum() はリスト内の要素の合計を計算する関数で、len() はリスト内の要素の数を返す関数です。
- 行13〜17: 要素数が偶数の場合、中央値は真ん中の 2 つの数値の平均になります。要素数が奇数の場合、中央値は真ん中の数値になります。
- 行2: 補足: range() は連続した整数を順番に取り出すために使います。
- 行9〜18: 補足: print() は画面に文字や値を表示する関数です。
次に試してみよう
- 平均値と中央値の違いを理解し、実際のデータで試してみましょう。
- リストの要素数が 10 以上になった場合に、中央値の計算を効率的に行う方法を考えてみましょう。
- 入力された数値の最大値と最小値も出力してみましょう。