Configuration électronique chimie python

Fermé
Bubu - Modifié le 11 nov. 2020 à 12:26
 Utilisateur anonyme - 11 nov. 2020 à 13:39
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
A voir également:

8 réponses

Utilisateur anonyme
11 nov. 2020 à 12:25
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
0
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])
0
Utilisateur anonyme
11 nov. 2020 à 12:35
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?
0
Utilisateur anonyme
11 nov. 2020 à 12:36
Ha tu l'as reposté pendant que je rédigeais mon message .
Très bien, même erreur
0
Dans mo programme n est u entier et l une liste donc c'est pour cela que ça ne marche pas!
0
Utilisateur anonyme
11 nov. 2020 à 12:47
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


0
je ne comprends pas pourquoi changer l'ordre ne n et l change le message d'erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 nov. 2020 à 12:49
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?

0
-entier
-entier
-liste
-entier?
0
Utilisateur anonyme
11 nov. 2020 à 12:51
non pas liste et pas entier?
0
chaîne de caractère alors pour l (string)
0
Utilisateur anonyme
11 nov. 2020 à 13:39
oui et pourquoi?
0