class Tenta():
    def __init__(self, bonus, poänglista):
        self.__bonus = bonus                            #Bonuspoäng 0-10
        self.__poäng = poänglista                       #Lista med poäng på de 8 uppgifterna
        self.__totalpoäng = self.beräknaTotalpoäng()    #Totala poängen (inkl bonus)
        self.__betyg = self.beräknaBetyg()              #Tentabetyget A..F

    def __str__(self):
        s = str(self.__bonus) + str(self.__poäng) + str(self.__totalpoäng) + self.__betyg
        return s
    
    def __lt__(self, other):
        """True om min totalpoäng är större än den andra, False annars.
           Används av listans sort-metod"""
        
        if self.__totalpoäng < other.__totalpoäng:
            return True
        else:
            return False

    def visa(self):
        print("Summa = ", self.__totalpoäng, "  Betyg: ", self.__betyg)

    def poängsumma(self):
        summa = 0
        for poäng in self.__poäng:
            summa += poäng
        return summa

    def beräknaTotalpoäng(self):
        totalpoäng = self.poängsumma() + self.__bonus
        return totalpoäng

    def beräknaBetyg(self):
        """Beräknar tentabetyget, skala A..F"""
        total = self.__totalpoäng
        if total >= 90:
            betyg = "A"
        elif total >= 80:
            betyg = "B"
        elif total >= 70:
            betyg = "C"
        elif total >= 60:
            betyg = "D"
        elif total >= 50:
            betyg = "E"
        elif total >= 47:
            betyg = "Fx"
        else:
            betyg = "F"
        return betyg

def str2int(stränglista):
    """Konverterar en lista med strängar till en lista med heltal"""
    lista = stränglista.split()
    tallista = []
    for s in lista:
        p = int(s)
        tallista.append(p)
    return tallista

def visaTentor(tentorna):
    for t in tentorna:
        t.visa()
    

def main():
    infil = open("tentapoäng.txt","r")
    infil.readline()
    tentorna = []
    for rad in infil:
        lista = rad.split("/")
        bonus = int(lista[0])
        stränglista = lista[1]
        poänglista = str2int(stränglista)
        t = Tenta(bonus, poänglista)
        tentorna.append(t)
    
    sorterat = tentorna
    sorterat.sort()
    print("tentorna")
    visaTentor(tentorna)
    print("\nsorterat")
    visaTentor(sorterat)

main()

        
