# -*- coding: utf-8 -*-

import math

G = 6.67*math.pow(10,-11)
Mjordklotet = 5.977*math.pow(10,24)


class Himlakropp:

    def __init__(self, namn, r, T):
        self.namn = namn
        self.r = r # r är avstånd
        self.T = T # T är omloppstid

    def beräknaMassa(self):
        self.massa = 4*math.pow(math.pi,2)*math.pow(self.r*1000000,3)/(G*math.pow(self.T*3600,2))

# Metod som läser in från filen till listan planeterna
def lasFranFil(himakropparna):
    infil = open('infil.txt','r')
    rad = ""
    infil.readline() # slurpa slaskrad1
    infil.readline() # slurpa slaskrad2
    infil.readline() # slurpa slaskrad3
    infil.readline() # slurpa slaskrad4
    namn = infil.readline().rstrip('\n')
    while ( namn != ""):
        rad = infil.readline().rstrip('\n')
        delar = rad.split('/') # För att ta bort "/" tecknet
        r = float(delar[0])
        T = float(delar[1])
        p = Himlakropp(namn,r,T)
        himakropparna.append(p)
        namn = infil.readline().rstrip('\n')
    return himakropparna

# Metod som anropar metoden planetmassa() på samtliga objekt i listan planeterna
def beraknaHimlakroppsmassorna(himlakropparna):
    for h in himlakropparna:
        h.beräknaMassa()

# Metod som skriver ut namn och massa för respektive himlakropp.
def skrivUtHimlakroppsmassorna(himlakropparna):
    for h in himlakropparna:
        print(h.namn + " väger " + str(h.massa/Mjordklotet) + " jordmassor.")
        
# Här följer huvudprogrammet

himlakropparna = list()
lasFranFil(himlakropparna)
beraknaHimlakroppsmassorna(himlakropparna)
skrivUtHimlakroppsmassorna(himlakropparna)
        

