計算機科学のブログ

ほしい物リスト

Python - Diving in: Let's Make a Splash - statistics module, mean method

Head First Python: A Learner’s Guide to the Fundamentals of Python Programming, A Brain-Friendly GuidePaul Barry(著)、 O’Reilly Mediaの Chapter 2.(Diving in: Let’s Make a Splash)、EXERCISE(187/682)の解答を求めてみる。

Jupyter(コード、入出力結果)

Times.ipynb

import os


FILENAME = 'Darius-13-100m-Fly.txt'
FOLDER = "swimdata"
with open(os.path.join(FOLDER, FILENAME)) as f:
    lines = f.readlines()
times = lines[0].strip().split(',')
converts = []
for t in times:
    minutes, rest = t.split(':')
    seconds, hundredths = rest.split('.')
    converts.append(int(minutes) * 60 * 100 + int(seconds) * 100 + int(hundredths))
import statistics


average = statistics.mean(converts)
mins_secs, hundredths = str(round(average / 100, 2)).split('.')
mins_secs = int(mins_secs)
minutes = mins_secs // 60
seconds = mins_secs - minutes*60 
average = str(minutes) + ':' + str(seconds) + '.' + str(hundredths)
name, age, distance, stroke = FILENAME.removesuffix('.txt').split('-')
name, age, distance, stroke
('Darius', '13', '100m', 'Fly')
times
['1:27.95', '1:21.07', '1:30.96', '1:23.22', '1:27.95', '1:28.30']
average
'1:26.58'