Configuration électronique chimie python

Fermé
Signaler
-
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
-
Bonjour,
je suis vraiment bloquée je dois réaliser un programme Python affichant les sous couches (n,l) jusqu'à n+l<8
d'après la loi de klechkowski, c'est-à-dire:
1s , 2s , 2p ,3s , 3p ,4s , 3d , 4p ,5s , 4d ,5p, 6s ,4f ,5d ,6p , 7s , 5f ,6d , 7p etc....

c'est-à-dire sans les lettres (1,0) (2,0) (2,1) (3,0) (3,1)(4,0) etc...
Mon programme n'aboutis à rien!

Programme:
n=1
ind=0
l=0
symbole_l='spdf'
l=symbole_l[0]
while n+l<8:
    ------for i in range(0,len(symbole_l)):
        ---------if n==n+l:
           -------- n=n+l
           --------- ind=l
           --------- print(n,l)
        --------else:
           ---------- n=n+1
           ----------- ind=l
           ----------- print(n,l)
print(n,symbole_l[l])




Configuration: Windows / Chrome 86.0.4240.193

8 réponses

Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
Bonjour

pour poster un code merci de lire ce petit tuto attentivement et jusqu'au bout
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
n=1
ind=0
l=0
symbole_l='spdf'
l=symbole_l[0]
while n+l<8:
    for i in range(0,len(symbole_l)):
        if n==n+l:
            n=n+l
            ind=l
            print(n,l)
        else:
            n=n+1
            ind=l
            print(n,l)
print(n,symbole_l[l])
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
Bon maintenant que Chris a édité ton corrigé ton message

On peut lire un peu mieux.
Une fois copié collé ton code dans un éditeur en ligne et enlevé les -- en trop.

J'ai une erreur à la ligne 7
while n+l<8:


Et cette erreur dit qu'on ne peut pas ajouter un entier et une string.

Comprends tu d'où vient cette erreur?
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
Ha tu l'as reposté pendant que je rédigeais mon message .
Très bien, même erreur
Dans mo programme n est u entier et l une liste donc c'est pour cela que ça ne marche pas!
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
Pour t'aider (peut-être)

Si j'écris
while n+l<8:

l'erreur est
TypeError: unsupported operand type(s) for +: 'int' and 'str'


alors que si j'écris
while l+n<8:

l'erreur est

TypeError: can only concatenate str (not "int") to str


je ne comprends pas pourquoi changer l'ordre ne n et l change le message d'erreur
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
Nos message se sont encore croisés.

Non, l n'est pas une liste.

Regarde les commentaires
n=1 #quel est le type de n ici?
ind=0
l=0 #quel est le type de l ici?
symbole_l='spdf' #quel est le type de l ici?
l=symbole_l[0] #quel est le type de l ici?

-entier
-entier
-liste
-entier?
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
non pas liste et pas entier?
chaîne de caractère alors pour l (string)
Messages postés
16572
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
782
oui et pourquoi?