import shared from pprint import pp from scipy import stats import numpy as np class Whale: def __init__(self, name): self.load(name) self.set_target() def load(self, name): with open(name, "r") as f: self.positions = list(map(int, f.read().split(","))) def set_target(self): data = np.array(self.positions) self.target = round(np.mean(data)) def calculate(self, target=None): return int(sum([self.sigma(abs(target - pos)) for pos in self.positions])) def sigma(self, value): return value * (value + 1) / 2 def main(): w = Whale(shared.get_fname(7)) if w.target in w.positions: target = w.target else: target = w.target - 1 pp(w.calculate(target)) if __name__ == "__main__": main()