# -*- encoding:utf8 -*-

# Définition de la classe Atome

class Atome:
    """Atomes simplifiés, choisis parmi les 10 premiers éléments du TP""" 
    table =[None, ('hydrogène',0),('hélium',2),('lithium',4),
            ('béryllium',5),('bore',6),('carbone',6),('azote',7),
            ('oxygène',8),('fluor',10),('néon',10)] # attribut de classe
            
    def __init__(self, nat):
        "le n° atomique détermine le n. de protons, d'électrons et de neutrons" 
        self.np, self.ne = nat, nat                 # nat = numéro atomique
        self.nn = Atome.table[nat][1]
        
    def affiche(self):
        """
        affiche()--> None
        Affiche le nom de l'élément atomique et sa composition
        """
        print("Nom de l'élément :", Atome.table[self.np][0])
        print("{n_protons} protons, {n_electrons} électrons, {n_neutrons} neutrons"\
              .format(n_protons = self.np, n_electrons = self.ne, n_neutrons = self.nn))
               
class Ion(Atome):
    """les ions sont des atomes qui ont gagné ou perdu des électrons"""
     
    def __init__(self, nat, charge):
        "Le n° atomique et la charge électrique déterminent l'ion"
        Atome.__init__(self, nat)
        self.ne = self.ne - charge
        self.charge = charge
    
    def affiche(self):
        """
        affiche() --> None
        Affiche le nom du ion et sa composition
        """
        Atome.affiche(self)
        print("Particule électrisée. Charge =", self.charge)
