2017-11-28 12 views
0

を書く私は現在になっているプログラムをコーディングしています:(私はこれを正常に行われるとの内容を入れている各ライン 上の成績と一緒に名前を持つファイルを開きます)Pythonのファイルの読み取りと

1各行を配列にする)。

2)データを評価し、最大、最小、平均を見つけます。

配列の値が技​​術的に文字列であるため、配列に関連するmax関数またはmin関数を使用しようとすると、エラーコードが表示されるため、2番目の部分に取り残されています。

私の質問は、どうすれば数字の価値しか得られないのですか?パラレルリストがより有用なのでしょうかもしそうなら、私はそれをどのように実装しますか?ここで

は、これまでの私のコードです:

def getGrades(filename): 

    try: 
     gradeArray = [] 
     with open("Grades.txt", "r") as f: 
      for line in f: 
       gradeArray.append(line.find()) 
    except: 
     print("Could not open", filename) 
    return(gradeArray) 
+1

は裸除く句を使用しないでください。できるだけ具体的なエラーをキャッチしようとする。 –

+1

'int()'または 'float()'を使って数値に変換しますか? – Julien

+0

私はInt()を行うことができない理由は、テキストの行がこのように見えるからです。 ラリー・スミス:80だから正面の文字列が道に入ります –

答えて

0

最適化、必要に応じて:

minValue = 0 
maxValue = 0 
total = 0 
first = int(gradeArray[0]) 
total = first 
for i in range(1, len(gradeArray)): 
    minValue = min(first, int(gradeArray[i])) 
    maxValue = max(first, int(gradeArray[i])) 
    total = total + int(gradeArray[i]) 
average = total/len(gradeArray) 
+0

お返事ありがとう!私は1つの問題があり、それは配列の値が次のようなものであることです。 Larry Smith:80 最後に数値が必要なだけで、その方法は分かりません。 –

+0

'' ' gradeArray.append(line.split( ':')[1]) '' ' – Martin

関連する問題