configuration électronique Python
configuration électronique Python
Bonjour,
je dois "écrire un programme affichant les sous-couches (n,l) classées par énergie croissante pour n+l≤8".
D'après la question précédente, on définit la variable symbole_l='spdf'
On sait que d'après la règle de Klechkowski, l'énergie des orbitales atomiques croît par n+l croissant puis par n croissant.
Il faut alors utiliser les conditions "if,else" dans le programme je le sais.
J'ai aussi utilisé une boucle "while n+l≤8".
Voici mon programme mais je sais qu'il est incomplet or je suis bloquée. EDIT: Je viens de de remarquer qu'il faut utiliser "ind" pour l'indice correspondant à l.
n=0
k=n+l
ind=0
symbole_l='spdf'
l=symbol_l[0]
while n+l<8:
for i in range(0,len(symbole_l)):
if ind<k:
n=k
l=symbole_l
else:
n=n+1
print(n,symbol_l[l])
je dois "écrire un programme affichant les sous-couches (n,l) classées par énergie croissante pour n+l≤8".
D'après la question précédente, on définit la variable symbole_l='spdf'
On sait que d'après la règle de Klechkowski, l'énergie des orbitales atomiques croît par n+l croissant puis par n croissant.
Il faut alors utiliser les conditions "if,else" dans le programme je le sais.
J'ai aussi utilisé une boucle "while n+l≤8".
Voici mon programme mais je sais qu'il est incomplet or je suis bloquée. EDIT: Je viens de de remarquer qu'il faut utiliser "ind" pour l'indice correspondant à l.
n=0
k=n+l
ind=0
symbole_l='spdf'
l=symbol_l[0]
while n+l<8:
for i in range(0,len(symbole_l)):
if ind<k:
n=k
l=symbole_l
else:
n=n+1
print(n,symbol_l[l])
Re: configuration électronique Python
tu as vu, du coup, l'oubli de l'utilisation de l' "ind", dans ton precedent code, l'as-tu deja modifie ?
Je suis d'accord avec la boucle while, compte tenu de l'enonce, mais tu ne sembles pas initialiser $ \ell $, avec un nombre, ce qui ne plaira pas trop a k, ni a ton "n+l<8".
(si tu veux effectivement faire ca, il faut faire un peu de travail en amont, en definissant une classe d'objets)
Tu as aussi quelques inconsistances sur le e de symbole, pour ta liste symbol(e)_l.
Ca, c'etait pour la forme.
Pour le fond, je ne comprends pas trop ce que tu fais dans ton if.
Tu dis, si ind<k, i.e, le nombre quantique secondaire est plus petit que k (sachant que k=n+l, c'est bizarre), alors n=k ? Ca n'est pas ce que dit le principe de l'Aufbau.
Tu dois ajouter petit a petit les orbitales par n+l croissants, et augmenter petit a petit les valeurs de l, et n, en gardant en tete leurs encadrements.
Donc, tu gardes
en partant du bas si tu preferes, donc n=1, l=0 (attention, n=0 n'existe pas !)
Et tu print petit a petit, le cas
n+l=1, (1,0),
n+l=2, (2,0),
n+l=3, (2,1), (3,0),
n+l=4, (3,1), (4,0),
n+l=5, (3,2), (4,1), (5,0)
et ainsi de suite.
Et, au lieu d'afficher la valeur de l, ici le second chiffre dans les couples, tu affiches l'element qui porte ce numero dans ta liste symbole_l.
(PS: c'est aussi faisable tres proprement dans l'autre sens, en faisant des output.append() et en diminuant les valeurs de n+l. )
Je suis d'accord avec la boucle while, compte tenu de l'enonce, mais tu ne sembles pas initialiser $ \ell $, avec un nombre, ce qui ne plaira pas trop a k, ni a ton "n+l<8".
(si tu veux effectivement faire ca, il faut faire un peu de travail en amont, en definissant une classe d'objets)
Tu as aussi quelques inconsistances sur le e de symbole, pour ta liste symbol(e)_l.
Ca, c'etait pour la forme.
Pour le fond, je ne comprends pas trop ce que tu fais dans ton if.
Tu dis, si ind<k, i.e, le nombre quantique secondaire est plus petit que k (sachant que k=n+l, c'est bizarre), alors n=k ? Ca n'est pas ce que dit le principe de l'Aufbau.
Tu dois ajouter petit a petit les orbitales par n+l croissants, et augmenter petit a petit les valeurs de l, et n, en gardant en tete leurs encadrements.
Donc, tu gardes
Code : Tout sélectionner
while n+l<8:
Et tu print petit a petit, le cas
n+l=1, (1,0),
n+l=2, (2,0),
n+l=3, (2,1), (3,0),
n+l=4, (3,1), (4,0),
n+l=5, (3,2), (4,1), (5,0)
et ainsi de suite.
SPOILER:
(PS: c'est aussi faisable tres proprement dans l'autre sens, en faisant des output.append() et en diminuant les valeurs de n+l. )
Masséna (PC*) -- X15 -- Spatial.
Re: configuration électronique Python
Ce genre de remarque nous aide peu pour t'aider.Voici mon programme mais je sais qu'il est incomplet or je suis bloquée
il te faut décrire un peu ce qui coince et ce que tu as essayé.
Par ex :"je dois faire une boucle, j'ai essayé telle syntaxe mais ça fait ça au lieu de ça et je ne comprends pas pourquoi".
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: configuration électronique Python
Alors quand j’exécutais mon programme a la fin il m’affichait « l is not defined » mais sinon grâce à l’explication de Hibiscus plus haut je comprends mieux mes erreurs dans ma boucle. C’était pour cela que je n’aboutissais à rien enfin que mon programme ne fonctionnait pas. Merci !
Re: configuration électronique Python
Pas exactementa la fin il m’affichait « l is not defined »
Il plantait en affichant non seulement le fait que l n'était pas défini mais aussi le numéro de la ligne ou le problème se situait.
l n'est pas défini? ok donc je regarde si mon programme parle de 'l' avant la ligne en question. Si la réponse est "non" alors le problème est clair (certains experts diront qu'avec eval ou exec on peut...mais ce n'est pas la question à ce niveau !)
Si la réponse est "oui" alors c'est que la ligne ou on parle de l plus haut n'est pas exécutée.
Tu peux soit rajouter des print pour comprendre ce qui se passe (après avoir relu le code) soit, si ça t'aide, lancer le debugger et suivre l'execution de ton programme pas à pas.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: configuration électronique Python
Je ne comprends pas avec quelles instructions afficher la plus haute valeur de l acceptable? Enfin je pense que je ne vois pas quelles conditions utiliser! Pour moi on doit utiliser
symbole_l=‘spdf ‘
m=symbole_l[0]
ind=0
l=ind
n=1
While n+l<8:
-— For i in range (0,len(symbole_l)):
———-if n+l==n:
—————-m=symbole_l
-—————Print (n,m)
————-—n=n+1
———-Else:
???
Et lorsque j’exécute mon programme, il affiche le première ligne et me dit « expected an indented block ». Ça veut dire que j’ai un problème d’indentation mais j’ai oublié aucune indentation selon moi je ne comprends pas.
Re: configuration électronique Python
- A quoi sert d'avoir "m" pour la lettre de la couche spdf, l pour le numero de l'indice de la couche (0,1,2,3), i.e, pour le nombre quantique secondaire, et "ind" en plus ? Ca en fait un de trop.
Ta premiere branche dans ta boucle for est visiblement de verifier que n+l=n, i.e, que l=0.
c'est vrai au debut, puisque tu initialises l a 0.
Et ensuite, tu augmentes n, avec ta ligne n=n+1.
Et l, dans tout ca ? Il ne peut pas rester a 0 perpetuellement.
J'ai l'impression que c'est moins un probleme de programmation, mais d'algorithmique/logique, qui te gene.
A part le "n+l croissants, puis n croissants", as-tu bien compris la regle de klechkowski ?
Le pourquoi et comment, l'ordre attendu est 1s2s2p3s3p4s3d4p, etc..
Ta premiere branche dans ta boucle for est visiblement de verifier que n+l=n, i.e, que l=0.
c'est vrai au debut, puisque tu initialises l a 0.
Et ensuite, tu augmentes n, avec ta ligne n=n+1.
Et l, dans tout ca ? Il ne peut pas rester a 0 perpetuellement.
J'ai l'impression que c'est moins un probleme de programmation, mais d'algorithmique/logique, qui te gene.
A part le "n+l croissants, puis n croissants", as-tu bien compris la regle de klechkowski ?
Le pourquoi et comment, l'ordre attendu est 1s2s2p3s3p4s3d4p, etc..
Masséna (PC*) -- X15 -- Spatial.
Re: configuration électronique Python
Oui je pense que c’est un problème de logique/algorithmique que j’ai car j’ai essayé dans un premier temps de faire un programme affichant (n,l) c’est à dire (1,0),(2,0),(2,1) en ne faisant pas apparaître la liste pour ensuite dans un deuxième temps utiliser la liste ‘spdf’ mais je n’y arrive même pas!
Mais sinon oui j’ai compris le pourquoi et comment de l’ordre des sous couches , j’ai même regardé plusieurs vidéos sur YouTube pour voir si j’avais bien compris mais rien n’y fait! Je suis perdue!
Mais sinon oui j’ai compris le pourquoi et comment de l’ordre des sous couches , j’ai même regardé plusieurs vidéos sur YouTube pour voir si j’avais bien compris mais rien n’y fait! Je suis perdue!
Re: configuration électronique Python
Un grand merci à tout le monde pour vos réponses, après maintes et maintes reprises dans mon programme j’ai enfin réussi à aboutir !!!