Python練習題-TQC+(904)-資料計算

904 資料計算
本題重點:
讀取read.txt(每一列的格式為名字和身高、體重,以空白分隔)
並顯示檔案內容、所有人的平均身高、平均體重以及最高者、最重者。


五個重點

1.讀檔 使用read() 、讀取多行使用 readlines()
2.顯示檔案內容 ,使用for 迴圈一筆一筆讀出
3.分割字串使用split(),並把身高體重轉型成數值 ,使用eval()
4.算出平均身高、體重 sum()加總後、除以 筆數可使用  len() 算筆數
5.找出最高與最重 ,一筆筆的去比較最大值。


 

1. 題目說明:

請開啟PYD904.py檔案,依下列題意進行作答,使輸出值符合題意要求。作答完成請另存新檔為PYA904.py再進行評分。

請注意:資料夾或程式碼中所提供的檔案路徑,不可進行變動,read.txt檔案需為UTF-8編碼格式。

2. 設計說明:

請撰寫一程式,讀取read.txt(每一列的格式為名字和身高、體重,以空白分隔)並顯示檔案內容、所有人的平均身高、平均體重以及最高者、最重者。

提示:輸出浮點數到小數點後第二位。

3. 輸入輸出:

輸入說明

讀取read.txt(每一行的格式為名字和身高、體重,以空白分隔)

輸出說明

輸出檔案中的內容
平均身高
平均體重
最高者
最重者


輸入輸出範例

範例輸入

範例輸出

Ben 175 65

Cathy 155 55

Tony 172 75
Average height: 167.33
Average weight: 65.00
The tallest is Ben with 175.00cm
The heaviest is Tony with 75.00kg

read.txt

Ben 175 65
Cathy 155 55
Tony 172 75

參考程式碼:

height=[]
weight=[]

maxh=0 
maxw=0 

f=open("read.txt","r")
w=f.readlines()

for x in w:
  print(x)
  ss=x.split(" ")
  
  height.append(eval(ss[1]))
  weight.append(eval(ss[2]))

  if (eval(ss[1])>maxh):
    maxh=eval(ss[1])
    hname=ss[0]

  if (eval(ss[2])>maxw):
    maxw=eval(ss[2]) 
    wname=ss[0] 
  
avgh=sum(height)/len(height)
avgw=sum(weight)/len(weight)

print("Average height: {:.2f}".format(avgh))
print("Average weight: {:.2f}".format(avgw))
print("The tallest is {} with {:.2f}cm".format(hname,maxh))
print("The heaviest is {} with {:.2f}kg".format(wname,maxw))

  

 

看看效果

Yiru@Studio - 關於我 - 意如