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

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

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

COUNT は、広く使用されているSQLの関数です。COUNT関数は、行数、もしくは配列のエンティティの数をカウントします。

Python 3.x

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

解決済

1回答

317閲覧

ファイルを読み込んで数値を計算したい

退会済みユーザー

退会済みユーザー

総合スコア0

COUNT

COUNT は、広く使用されているSQLの関数です。COUNT関数は、行数、もしくは配列のエンティティの数をカウントします。

Python 3.x

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

0クリップ

投稿2018/10/18 23:24

編集2018/10/18 23:56

パイソンで、以下のデータが入ったファイルを読み込み計算をするのですが、パイソン初心者な上に今までファイルを使ってプログラミングすることがなかったためにどう対処すれば良いか分からず、ファイルを上手く使いこなすことができません。
ファイルの中は、以下のようになっています。

リンク内容

ファイルの内容を簡単に説明します。
10(生徒の数)
Bart Simpson(生徒1)
5(学年)
Volcano(研究内容)
7.5(以下四つそのスコア)
7.8
9.9
8.5
Lisa Simpson(生徒2)
4(学年)
Animal Intelligence(研究内容)
9.5(以下四つそのスコア)
7.8
9.9
8.5
……..(以下略)

そして、このファイルを読み込んで以下のような空欄に答えを埋めなければなりません。
There are ___ student enter at the Grade 1 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There are ___ student enter at the Grade 2 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There are ___ student enter at the Grade 3 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There are ___ student enter at the Grade 4 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There are ___ student enter at the Grade 5 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There are ___ student enter at the Grade 6 Level
The Winner is ______________ with an average score of ____ and the project was __________________________.
There were ____ Students in this Science Fair

一応自分もできるところまで尽力してみたのですが、ファイルの読み込み方すらままならず、全くの無知からのスタートになりました。ネットの力を借りて、ファイルの読み込み方はわかりましたが、それをどうプログラムに組み込んでいくのかが分かりません。
以下が自分のちっぽけな知識をひねり出してなんとか途中まで書いたプログラムです。

python

1Grade = (5, 4, 4, 5, 5, 4, 4, 6, 5, 3) 2Score1 = 7.5 + 7.8 + 9.9 + 8.5 3Score2 = 9.5 + 7.8 + 9.9 + 8.5 4Score3 = 2.5 + 1.8 + 3.9 + 6.5 5Score4 = 10.0 + 9.5 + 9.9 + 8.7 6Score5 = 5.5 + 6.8 + 7.9 + 8.1 7Score6 = 8.5 + 8.8 + 8.9 + 9.9 8Score7 = 9.5 + 8.8 + 9.9 + 8.5 9Score8 = 8.5 + 7.8 + 7.9 + 7.5 10Score9 = 8.5 + 8.8 + 9.9 + 9.5 11Score10 =7.5 + 7.8 + 8.9 + 9.1 12number1 = (Grade.count(1)) 13number2 = (Grade.count(2)) 14number3 = (Grade.count(3)) 15number4 = (Grade.count(4)) 16number5 = (Grade.count(5)) 17number6 = (Grade.count(6)) 18print("There are " + str(number1) + " student enter at the Grade1 Level") 19print("There are " + str(number2) + " student enter at the Grade2 Level") 20print("There are " + str(number3) + " student enter at the Grade3 Level") 21average10 = Score10 / 4 22print("The Winner is Uter Uter with average score of " + str(round(average10, 2)) + " and the project wasThe Metric System") 23print("There are " + str(number4,) + " student enter at the Grade4 Level") 24

このプログラムにはファイルが組み込めていません。また、非常に非効率的な方法だと思っているものの、より良いやり方が経験の浅い自分では思いつくことができません。今後のパイソンの勉強のためにも、分かる方がいらっしゃいましたら回答お願いしたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. ファイルを読み込み
  2. ファイルのデータをfloatに変換
  3. floatデータを計算
  4. 計算結果を出力

全部いっしょにしようとせず、一つづつ実装していきましょう

投稿2018/10/19 01:27

y_waiwai

総合スコア87749

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

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

退会済みユーザー

退会済みユーザー

2018/10/19 13:21 編集

丁寧な回答ありがとうございます。y_waiwaiさんの回答を参考にどうにか数値として機能しないかと試行錯誤してみたものの、うまくいきません。以下が、自分の書いた、たどたどしいプログラムにはなります。 file = open("results.txt","r") fileData = "" howmany = 0 numbertotal = 0 averagenumber = 0 fileData = file.readline() lines = float(fileData) while fileData != "": howmany = howmany + 1 numbertotal = numbertotal + lines print("Data from file->", lines) fileData = file.readline() file.close() 実行すると、とんでもないことになってしまいます。具体的にどう対処すれば良いのでしょうか。
退会済みユーザー

退会済みユーザー

2018/10/19 13:38

また、このファイルには数値と文字(名前など)が混在しています。どうプログラムすれば、文字は文字として、数値は数値として処理することができるのでしょうか。こんな初心者ですが、だからこそ今後のパイソンの技術向上のためにも具体的な解決案を教えていただきたいです。
y_waiwai

2018/10/19 22:38

文字列が整数かどうかというのは fileData.isdecimal() で判定できるんですが、floatの場合はちと面倒になります https://www.python.ambitious-engineer.com/archives/420 このページの終わりの方に、文字列の数字変換判定の例が載ってますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問