# Donner la configuration electonique d'un atome en fonction du nombre d'electrons def couche_electronique(z): #listes des sous-couches electroniques par ordre croissant d'énergie : sous_couches=['1s','2s','2p','3s','3p','4s','3d','4p','5s','4d','5p','6s','4f','5d','6p'] # liste du nombre d'électrons maximum pour chaque sous-couche électronique : electron_max=[2,2,6,2,6,2,10,6,2,10,6,2,14,10,6] # variables d'initialisation : index=0 valeur="" liste_Reponse=[] # nombre d'électrons à répartir sur les couches électroniques: n_electron = z # tant qu'il y a des électrons à placer : while n_electron >0: # Prendre la plus petite valeur entre le nombre d'électrons à placer #et le nombre maximum d'électrons possible sur la sous-couche à remplir : nb = min(n_electron,electron_max[index]) #ajouter à la réponse le nombre d'électrons placé sur la sous-couche: valeur =sous_couches[index]+str(nb) liste_Reponse.append(valeur) # enlever les électrons ainsi placer au nombre d'électrons à placer : n_electron = n_electron-nb # passer la sous couche suivante : index = index +1 return liste_Reponse def configuration (z): # on récupère la liste des sous couches remplies pris dans l'ordre de remplissage. liste=couche_electronique(z) # Ecriture de la réponse sous la forme d'une chaine de caractère : reponse ="" for i in range(len(liste)): reponse+=liste[i]+" " # retourner la réponse : return reponse def valence(z): liste = couche_electronique(z) # tri de la liste obtenue dans l'ordre des coushes: l = len(liste) for i in range (1,l): memoire = liste[i] j= i-1 while j>=0 and liste[j][0]>memoire[0]: liste[j+1] = liste[j] j= j-1 liste[j+1] = memoire # récupération de la dernière couche rempli ( nombre quantique n) n= liste[-1][0] #‗initialisation de la valence à 0 valence =0 for i in range (len(liste)): if liste[i][0]==n: valence = valence + int(liste[i][2:]) return valence