標準偏差を求める関数の定義

下表は,あるクラス10人が受験した英語と理科のテスト結果(得点)を示している。

得点の標準偏差を求める関数(受験者の得点が代入されたリストを引数とし,標準偏差を返す関数)を定義しなさい。 また,その定義した関数を用いて,英語と理科の標準偏差を出力するプログラムを作成しなさい。 ただし,標準偏差は小数第2位を四捨五入して,小数第1位まで出力すること。

stdevp.py

# coding: shift_jis
import math

n = 10
eigo = [70, 75, 82, 35, 61, 60, 68, 73, 76, 65]
rika = [35, 65, 76, 42, 52, 40, 50, 64, 88, 69]

def stdevp(ls):
	ave = sum(ls) / n
	s = 0
	i = 0
	while i < n:
		s += (ls[i] - ave) ** 2
		i = i + 1
	s = math.sqrt(s / n)
	s = int(s * 10 + 0.5) / 10  #小数第2位を四捨五入
	return s

print("英語の標準偏差:", stdevp(eigo))
print("理科の標準偏差:", stdevp(rika))
H:\prg1\09> python stdevp.py↵
英語の標準偏差: 12.4
理科の標準偏差: 16.2


欠席者を含むテスト結果の標準偏差を求める関数の定義

下表は,あるクラスの英語と理科のテスト結果(得点,欠席者を含む)を示している。

得点の標準偏差を求める関数(受験者の得点が代入されたリスト(欠席者を含む)を引数とし,標準偏差を返す関数)を定義しなさい。 また,その定義した関数を用いて,英語と理科の標準偏差を出力するプログラムを作成しなさい。 ただし,標準偏差は小数第2位を四捨五入して,小数第1位まで出力すること。

解答例

英語の標準偏差: 6.9
理科の標準偏差: 16.2