{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Structure de l'atome\n", "(code sous licence creative commun CC BY-NC-SA BY Alexis Dendiével)\n" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ":download:`Télécharger le pdf <./exemple_1_structure_atome.pdf>`\n", "\n", ":download:`Télécharger le notebook <./exemple_1_structure_atome.ipynb>`\n", "\n", ":download:`Lancer le notebook sur binder (lent) `" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A partir du numéro atomique et du nombre de masse, ce programme:\n", "\n", "- donne le nom et le symbole de l'atome\n", "- précise le nombre de protons, neutrons, et électrons\n", "- calcule la masse (approchée) du noyau et de l'atome entier\n", "- donne la répartition électronique par couche (pour les 18 premiers éléments)\n", "- donne la structure électronique selon la règle de Klechkowski (les exeptions n'ont pas été traitées)\n", "\n", "Sans entrer dans la compréhension détaillée du code, je vous propose d'exécuter le programme suivant (mais vous pouvez quand même lire les commentaires :) :" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# fonction affichant la structure de l'atome\n", "def structure(A, Z):\n", " #données\n", " # la masse des protons et des neutrons est approchée:\n", " masse_nucleon = 1.67e-27\n", " # masse de l'électron\n", " masse_electron = 9.109e-31\n", " # liste des orbitales atomiques\n", " liste_orbitales = ( (1, 's', 2), (2, 's', 2), (2, 'p', 6), \n", " (3, 's', 2), (3, 'p', 6), (4, 's', 2),\n", " (3, 'd', 10), (4, 'p', 6), (5, 's', 2),\n", " (4, 'd', 10), (5, 'p', 6), (6, 's', 2),\n", " (4, 'f', 14), (5, 'd', 10), (6, 'p', 6),\n", " (7, 's', 2), (5, 'f', 14), (6, 'd', 10),\n", " (7, 'p', 6) )\n", " # liste des éléments chimiques de la classification\n", " elements = (\n", " \"Hydrogène H\", \"Hélium He\", \"Lithium Li\", \"Béryllium Be\", \n", " \"Bore B\", \"Carbone C\", \"Azote N\", \"Oxygène O\",\n", " \"Fluor F\", \"Néon Ne\", \"Sodium Na\", \"Magnésium Mg\",\n", " \"Aluminium Al\", \"Silicium Si\", \"Phosphore P\",\n", " \"Soufre S\", \"Chlore Cl\", \"Argon Ar\", \"Potassium K\",\n", " \"Calcium Ca\", \"Scandium Sc\", \"Titane Ti\", \"Vanadium V\",\n", " \"Chrome Cr\", \"Manganèse Mn\", \"Fer Fe\", \"Cobalt Co\",\n", " \"Nickel Ni\", \"Cuivre Cu\", \"Zinc Zn\", \"Gallium Ga\",\n", " \"Germanium Ge\", \"Arsenic As\", \"Sélénium Se\",\n", " \"Brome Br\", \"Krypton Kr\", \"Rubidium Rb\",\n", " \"Strontium Sr\", \"Yttrium Y\", \"Zirconium Zr\",\n", " \"Niobium Nb\", \"Molybdène Mo\", \"Technétium Tc\",\n", " \"Ruthénium Ru\", \"Rhodium Rh\", \"Palladium Pd\",\n", " \"Argent Ag\", \"Cadmium Cd\", \"Indium In\", \"Étain Sn\",\n", " \"Antimoine Sb\", \"Tellure Te\", \"Iode I\", \"Xénon Xe\",\n", " \"Césium Cs\", \"Baryum Ba\", \"Lanthane La\", \"Cérium Ce\",\n", " \"Praséodyme Pr\", \"Néodyme Nd\", \"Prométhium Pm\",\n", " \"Samarium Sm\", \"Europium Eu\", \"Gadolinium Gd\",\n", " \"Terbium Tb\", \"Dysprosium Dy\", \"Holmium Ho\",\n", " \"Erbium Er\", \"Thulium Tm\", \"Ytterbium Yb\",\n", " \"Lutécium Lu\", \"Hafnium Hf\", \"Tantale Ta\",\n", " \"Tungstène W\", \"Rhénium Re\", \"Osmium Os\",\n", " \"Iridium Ir\", \"Platine Pt\", \"Or Au\", \"Mercure Hg\",\n", " \"Thallium Tl\", \"Plomb Pb\", \"Bismuth Bi\", \"Polonium Po\",\n", " \"Astate At\", \"Radon Rn\", \"Francium Fr\", \"Radium Ra\",\n", " \"Actinium Ac\", \"Thorium Th\", \"Protactinium Pa\",\n", " \"Uranium U\", \"Neptunium Np\", \"Plutonium Pu\",\n", " \"Américium Am\", \"Curium Cm\", \"Berkélium Bk\",\n", " \"Californium Cf\", \"Einsteinium Es\", \"Fermium Fm\",\n", " \"Mendélévium Md\", \"Nobélium No\", \"Lawrencium Lr\",\n", " \"Rutherfordium Rf\", \"Dubnium Db\", \"Seaborgium Sg\",\n", " \"Bohrium Bh\", \"Hassium Hs\", \"Meitnérium Mt\",\n", " \"Darmstadtium Ds\", \"Roentgenium Rg\", \"Ununbium Uub\",\n", " \"Ununtrium Uut\", \"Ununquadium Uuq\", \"Ununpentium Uup\",\n", " \"Ununhexium Uuh\", \"Ununseptium Uus\", \"Ununoctium Uuo\")\n", "\n", "\n", " #calcul des masses\n", " masse_noyau = A * masse_nucleon\n", " masse = A * masse_nucleon + Z * masse_electron\n", "\n", " # calcul des couches électroniques\n", " \n", " if Z <= 2:\n", " couches = \"(K)\" + str(Z)\n", " elif Z <=10:\n", " couches = \"(K)\" + str(2) + \"(L)\" + str(Z-2)\n", " elif Z <= 18:\n", " couches = \"(K)\" + str(2) + \"(L)\" + str(8) \\\n", " + \"(M)\" + str(Z-10)\n", " else:\n", " couches = \"\\nce calcul est limité à des numéros \" + \\\n", " \"atomiques inférieurs ou égal à 18\"\n", "\n", "\n", " # calcul des orbitales atomiques\n", " orbitale = 0\n", " n_restant = Z\n", " structure = \"\"\n", " while n_restant > 0:\n", " (n, nom, ne) = liste_orbitales [orbitale]\n", " if n_restant < ne:\n", " nmin = n_restant\n", " else:\n", " nmin = ne\n", " structure = structure + str(n) + nom + str(nmin) + ' '\n", " n_restant = n_restant - nmin\n", " orbitale = orbitale + 1\n", "\n", " # impression des résultats\n", " print(\"---------------------\")\n", " print (\"RESULTATS pour A =\", A, \" et Z =\",Z)\n", " # impression de l'élément et de son symbole\n", " print(\"il s'agit de l'élément :\", elements[Z-1])\n", " # impression de la structure de l'atome\n", " print(\"nombre de protons : \", Z )\n", " print(\"nombre de neutrons : \", A - Z)\n", " print(\"nombre d'électrons : \", Z)\n", " # impression des masses, du noyau et de l'atome\n", " print(\"masse du noyau : \",\n", " \"{0:.3e}\".format(masse_noyau), ' kg')\n", " print(\"masse de l'atome : \",\n", " \"{0:.3e}\".format(masse), ' kg')\n", " print(\"\")\n", " # impression des couches et structure électronique\n", " print(\"remplissage des couches électroniques :\",\n", " couches)\n", " print(\"la structure électronique est :\",\n", " structure)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "---------------------\n", "RESULTATS pour A = 36 et Z = 17\n", "il s'agit de l'élément : Chlore Cl\n", "nombre de protons : 17\n", "nombre de neutrons : 19\n", "nombre d'électrons : 17\n", "masse du noyau : 6.012e-26 kg\n", "masse de l'atome : 6.014e-26 kg\n", "\n", "remplissage des couches électroniques : (K)2(L)8(M)7\n", "la structure électronique est : 1s2 2s2 2p6 3s2 3p5 \n", "---------------------\n", "RESULTATS pour A = 12 et Z = 6\n", "il s'agit de l'élément : Carbone C\n", "nombre de protons : 6\n", "nombre de neutrons : 6\n", "nombre d'électrons : 6\n", "masse du noyau : 2.004e-26 kg\n", "masse de l'atome : 2.005e-26 kg\n", "\n", "remplissage des couches électroniques : (K)2(L)4\n", "la structure électronique est : 1s2 2s2 2p2 \n" ] } ], "source": [ "# Utilisation : calcul de la structure\n", "# Chlore\n", "structure(A=36,Z=17)\n", "# Carbone\n", "structure(A=12,Z=6)" ] } ], "metadata": { "celltoolbar": "Format de la Cellule Texte Brut", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }