Exercice 1

On se propose de travailler sur une classe Electron qui permettrait de manipuler les propriétés d'un électron dans un atome.

Pour rappel, dans un atome polyélectronique, un électron est reperé par quatre nombres quantiques n, l, m et m_s avec les propriétés suivantes:

nombre quantique condition
n n entier, n > 0
l l entier, 0 \leq l < n
m m entier relatif, -l \leq m \leq +l
m_s m_s demi-entier, m_s = +\frac{1}{2} ou -\frac{1}{2}

Dans la classe Electron, les nombres n, l, m seront identifiés par des entiers tandis que le spin m_s sera identifié par un booléan (True pour +½ et False pour -½).

Le programme principal utilisant la classe Electron est le suivant:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python

import Electron

print "version 1"
e1 = Electron.ElectronV1()

e1.affiche()

e2 = Electron.ElectronV1()
e2.setN(2)
e2.setL(1)
e2.setM(-1)
e2.setMs(False)
e2.affiche()

if Electron.ElectronV1.Pauli(e1,e2):
  print "Les deux electrons sont identiques"
else:
  print "Les deux electrons sont differents"

print "version 2"
e1 = Electron.ElectronV2()

print e1

e2 = Electron.ElectronV2()
e2.n=2
e2.l=1
e2.m=-1
e2.ms=False
print e2

if Electron.ElectronV2.Pauli(e1,e2):
  print "Les deux electrons sont identiques"
else:
  print "Les deux electrons sont differents"

e3 = Electron.ElectronV2()
# les lignes suivantes generent des erreurs
#e3.n=-1
#e3.l=e2.n
#e3.m=e2.n
#e3.ms=25

L'exécution du code fournit:

version 1
Electron: n =  1 - l =  0 - m =  0 - ms = True
Electron: n =  2 - l =  1 - m = -1 - ms = False
Les deux electrons sont differents
version 2
Electron: n =  1 - l =  0 - m =  0 - ms = True
Electron: n =  2 - l =  1 - m = -1 - ms = False
Les deux electrons sont differents

Ecrire la classe Electron...