Configuration électronique chimie python

Signaler
-
Messages postés
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
-
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
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
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
non pas liste et pas entier?
chaîne de caractère alors pour l (string)
Messages postés
15103
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2020
614
oui et pourquoi?