2017-10-25 9 views
0

私が書いている.txtファイルに表示される割合を得ることができないようです。私の.txtファイルの間隔も問題になります。それぞれのout.writeステートメントの最後に「\ n」を追加しましたが、別の方法があるかどうかはわかりませんでした。 .txtファイルは次のようになります。ここでまた.txtファイルに値を挿入してください

Russian Fed., 2.296, Well Above Average 

Norway, 50.89, Well Above Average 

Canada, 7.083, Well Above Average 

//etc.. 

を、私はここでコンテキスト http://www.cs.uni.edu/~diesburg/courses/cs1510_sp17/homework/PA06/medalData.csv

のために参照していますcsvファイルは、私はそれが書き込みを修正することにより、作業しまった私のコード

import csv 
medal=[] 
av=[] 
i=0 
country=[] 
out = open('results.txt','w') 
with open('hw06.csv', 'r') as f: 
    reader = csv.reader(f,delimiter=',') 
    for row in reader: 
     if row[1]!='Country': 
      medal.append(int(row[3])+int(row[4])+int(row[5])) 

      country.append(row[1]) 
      out.write(row[1]) 
      average = round(((medal[i]/int(row[2])) * 10000000),3) 
      av.append(average) 

      if average < 0.672 : 
       out.write("WELL Below Average""\n") 
      elif average >= 0.672 and average <= 1.171: 
       out.write("Below Average""\n") 
      elif average == 1.172: 
       out.write("Average""\n") 
      elif average >= 1.173 and average <= 1.672 : 
       out.write("Above Average""\n") 
      elif average > 1.672: 
       out.write("WELL Above Average""\n") 
      i+=1 


out.close() 
Higest_loc =av.index(max(av)) 
lowest_loc =av.index(min(av)) 
print(country[Higest_loc],"has the Highest Ratio") 
print(country[lowest_loc],"has the Lowest Ratio") 

答えて

0

ですステートメントはif..elif構造体にあります。更新されたコードは次のとおりです。

import csv 
medal=[] 
av=[] 
i=0 
country=[] 
out = open('results.txt','w') 
with open('medalData.csv', 'r') as f: 
    reader = csv.reader(f,delimiter=',') 
    for row in reader: 
     if row[1]!='Country': 
      medal.append(int(row[3])+int(row[4])+int(row[5])) 

      country.append(row[1]) 
      out.write(row[1]) 
      average = round(((medal[i]/int(row[2])) * 10000000),3) 
      av.append(average) 

      if average < 0.672 : 
       out.write(", {}, WELL Below Average""\n".format(average)) 
      elif average >= 0.672 and average <= 1.171: 
       out.write(", {}, Below Average""\n".format(average)) 
      elif average == 1.172: 
       out.write(", {}, Average""\n".format(average)) 
      elif average >= 1.173 and average <= 1.672 : 
       out.write(", {}, Above Average""\n".format(average)) 
      elif average > 1.672: 
       out.write(", {}, WELL Above Average""\n".format(average)) 
      i+=1 


out.close() 
Higest_loc =av.index(max(av)) 
lowest_loc =av.index(min(av)) 
print(country[Higest_loc],"has the Highest Ratio") 
print(country[lowest_loc],"has the Lowest Ratio") 
関連する問題