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

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

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

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

Q&A

解決済

2回答

1409閲覧

関数の定義を実行したとき、実行と違う結果が出たりName Errorが出たりする。

o.r

総合スコア14

Python

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

0グッド

0クリップ

投稿2018/09/05 13:08

Python

1monk_fish_team = [158,157,163,157,145] 2 3total = sum(monk_fish_team) 4length = len(monk_fish_team) 5mean = total/length 6variance = 0 7for height in monk_fish_team: 8 variance += (height-mean)**2 9 10variance = variance/length 11 12volleyball_team = [143,167,170,165] 13 14total2 = sum(volleyball_team) 15length2 = len(volleyball_team) 16mean2 = total2/length2 17variance2 = 0 18 19for height in volleyball_team: 20 variance2 += (height-mean2)**2 21 22variance2 = variance2/lenght2

Python

1def calc_variance(a_list): 2 total = sum(a_list) 3 length = len(a_list) 4 mean = total/length 5 variance = 0 6 7 for height in a_list: 8 variance += (height-mean)**2 9 variance = variance/len(a_list) 10 11 return variance

Python

1monk_fish_team = [158,157,163,157,145] 2volleyball_team = [143,167,170,165] 3pravda_team = [127,172,140,160,174] 4 5monk_team_variance = calc_variance(monk_fish_team) 6volley_team_variance = calc_variance(volleyball_team) 7pravda_team_varinace = calc_variance(pravda_team) 8 9print(monk_team_variance**0.5) 10print(volley_team_variance**0.5) 11print(pravda_team_variance**0.5)

Python

10.8944271909999159 29.125

Python

1--------------------------------------------------------------------------- 2NameError Traceback (most recent call last) 3<ipython-input-23-9c6d0d6f869d> in <module>() 4 9 print(monk_team_variance**0.5) 5 10 print(volley_team_variance**0.5) 6---> 11 print(pravda_team_variance**0.5) 7 8NameError: name 'pravda_team_variance' is not defined 9

上の通り本当だったら「5.932958789676531
9.557719393244394
18.347751905887545」
なのですがName Errorと「0.8944271909999159
9.125」という全く違う合計が帰ってきました。教えてくれるとありがたいです。

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

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

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

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

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

guest

回答2

0

python

1 for height in a_list: 2 variance += (height-mean)**2 3 variance = variance/len(a_list) 4 5 return variance

ループされてません

pravda_team_varinace = calc_variance(pravda_team)

print(pravda_team_variance**0.5)

スペル違います


python

1 for height in a_list: 2 variance += (height-mean)**2 3 variance = variance/len(a_list) 4 5 return variance

こうじゃないの?

投稿2018/09/05 13:12

編集2018/09/05 13:47
y_waiwai

総合スコア87747

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

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

o.r

2018/09/05 13:38

合計が違うのはどうしてですか?
y_waiwai

2018/09/05 13:43

forのナカミが、 variance += (height-mean)**2 variance = variance/len(a_list) return variance と、そのままreturn されてしまってます。 あなたの意図したものはこれでしょうか。
o.r

2018/09/05 13:59

正しくはどうすれば良いですか?
y_waiwai

2018/09/05 14:00

回答に追記しました
o.r

2018/09/05 14:11

治りました!!ありがとうございます!! ちょっと入力の順番がバラついていたっぽいです。
guest

0

ベストアンサー

Python

pravda_team_varinace = calc_variance(pravda_team)

スペルを間違えています。NameErrorはこれに起因するものです。
pravda_team_varinace ⇒ pravda_team_variance

投稿2018/09/05 13:10

LouiS0616

総合スコア35660

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

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

o.r

2018/09/05 13:16

すみません。こんな単純なスペルミスで質問をしてしまって。
o.r

2018/09/05 13:18

でも合計が違うのはどうしてですか?
LouiS0616

2018/09/05 13:18

NameErrorの原因はかなりの場合打ち間違いですので、またNameErrorが出た場合はそこに気を付けてみてください。 エラーメッセージでも『name 'pravda_team_variance' is not defined』みたいなヒントがあったはずです。
LouiS0616

2018/09/05 13:19

> でも合計が違うのはどうしてですか? y_waiwaiさんが回答されているように、インデントがずれていることが原因と思われます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問