teaching:progappchim:presentation_principes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:progappchim:presentation_principes [2017/02/15 13:10] villersdteaching:progappchim:presentation_principes [2023/02/21 14:56] (Version actuelle) villersd
Ligne 32: Ligne 32:
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-<diagram+<flowchartjs default
-| AAA | |AAA{border-color:black;background-color:lightblue}=Code source +  box1=>operation: Code source 
-| |!@4| | AB |AB{border-color:white}=Compilation +  → Compilation 
-| BBB | | | | | | | | | | |BBB{border-color:black;background-color:lightblue}=Code objet +  box2=>operation: Code objet 
-| |!@4| | BC |BC{border-color:white}=Exécution +  → Exécution 
-| CCC | | | | | | | | | | |CCC{border-color:black;background-color:lightblue}=Résultat +  box3=>operationRésultat 
-</diagram>+   
 +  box1->box2->box3 
 +</flowchartjs>
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
Ligne 50: Ligne 52:
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-<diagram+<flowchartjs default
-| AAA | |AAA{border-color:black;background-color:lightblue}=Code source +  box1=>operation: Code source 
-| |!@4| | AB |AB{border-color:white}=Interprétation +  → Interprétation 
-| BBB | | | | | | | | | | |BBB{border-color:black;background-color:lightblue}=Résultat +  box2=>operationRésultat 
-</diagram>+   
 +  box1->box2 
 +</flowchartjs>
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
Ligne 69: Ligne 73:
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-<diagram+<flowchartjs default
-| AAA | |AAA{border-color:black;background-color:lightblue}=Code source Python (.py, .py3+  box1=>operation: Code source Python (.py) 
-| |!@4| | AB |AB{border-color:white}=Compilation +  → Compilation 
-| BBB | | | | | | | | | | |BBB{border-color:black;background-color:lightblue}=Python Bytecode (.pyc) +  box2=>operation: Python Bytecode (.pyc) 
-| |!@4| | BC |BC{border-color:white}=Interprétation +  → Interprétation 
-| CCC | | | | | | | | | | |CCC{border-color:black;background-color:lightblue}=Résultat +  box3=>operationRésultat 
-</diagram>+   
 +  box1->box2->box3 
 +</flowchartjs>
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
Ligne 156: Ligne 162:
 >>> >>>
 </code> </code>
-  * Commandes : copyrigth, credits, license(), quit, help, help(),...+  * Commandes : copyright, credits, license(), quit, help, help(),...
  
 ==== Notion de variable ==== ==== Notion de variable ====
Ligne 165: Ligne 171:
 >>> V=24*L >>> V=24*L
 >>> n=1 >>> n=1
->>> zero=273.16+>>> zero=273.15
 >>> T=20+zero >>> T=20+zero
 >>> P=n*R*T/V >>> P=n*R*T/V
Ligne 253: Ligne 259:
 >>> b="bonjour" >>> b="bonjour"
 >>> c=’Bonjour’ >>> c=’Bonjour’
->>> print a==b,a==c+>>> print(a==b,a==c)
 True False True False
 >>> d="pâté123#" >>> d="pâté123#"
Ligne 273: Ligne 279:
 ==== Opérations sur les chaînes ==== ==== Opérations sur les chaînes ====
 <code> <code>
->>> s=Mons, le 15 septembre 2009+>>> s='Mons, le 15 septembre 2009'  
 >>> s[8:] >>> s[8:]
-’ 15 septembre 2009 +15 septembre 2009' 
->>> s.find(le)+>>> s.find('le')
 6 6
 >>> s.split() >>> s.split()
-[Mons,le15septembre2009]+['Mons,''le''15''septembre''2009']
 >>> s.upper() >>> s.upper()
-MONS, LE 15 SEPTEMBRE 2009+'MONS, LE 15 SEPTEMBRE 2009'
 >>> s.replace(’ ’,’_’) >>> s.replace(’ ’,’_’)
-Mons,_le_15_septembre_2009+'Mons,_le_15_septembre_2009'
 >>> >>>
 </code> </code>
Ligne 444: Ligne 450:
  
 <code python> <code python>
-print(Structure while !)+print('Structure while !')
 c=0 c=0
 while c< 4: while c< 4:
     print(c)     print(c)
     c=c+1     c=c+1
-print(valeur finale = ,c)+print('valeur finale = ',c)
  
-print(Structure for)+print('Structure for')
 a=range(11) a=range(11)
 print(a) print(a)
Ligne 468: Ligne 474:
 ==== Exemples d’indentation ==== ==== Exemples d’indentation ====
 <code python> <code python>
-print(Table de multiplication)+print('Table de multiplication')
 a=range(11) a=range(11)
 for i in a: for i in a:
     for j in a:     for j in a:
-        print(i*j,+        print(i*j, end = ' '
-    print(’ sont multiples de ,i)+    print(sont multiples de ',i)
 </code> </code>
  
Ligne 553: Ligne 559:
   * des procédures de tests   * des procédures de tests
   * la génération de documentation sous différentes formes   * la génération de documentation sous différentes formes
 +  * la possibilité d'utiliser des versions spécifiques de librairies
   * ...   * ...
  
Ligne 638: Ligne 645:
  
 ==== Tkinter : animation ==== ==== Tkinter : animation ====
-<code python>+<code python anima_auto_rebond.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 698: Ligne 705:
 </code> </code>
  
 +==== tkinter : tkDemo, demonstration of Tk widgets ====
 +
 +FIXME : ? tkdemo était proposé pour la branche 2 de Python. Rechercher pour la version python 3 ?
 +
 +Voir par exemple [[https://github.com/daleathan/widget-tour-py3|ce lien]]
 +
 +
 +==== Graphiques simples avec matplotlib ====
 +<code python>
 +# cosinusoïde amortie
 +from pylab import *
 +
 +def my_func(t):        
 +    s1 = cos(2*pi*t)        
 +    e1 = exp(-t)        
 +    return s1*e1
 +
 +tvals = arange(0., 5., 0.05)
 +#plot(tvals, my_func(tvals))
 +#show()
 +
 +plot(tvals, my_func(tvals), 'bo', tvals, my_func(tvals), 'k')
 +show()
 +</code>
 +
 +==== Calculs numériques (FFT) et graphiques plus élaborés ====
 +
 +[[teaching:progappchim:numpy_simple#transformees_de_fourier]]
 +
 +{{ :teaching:progappchim:fonctions-ft-04.png }}
 +
 +==== Graphiques et illustrations plus complexes ====
 +
 +[[teaching:progappchim:matplotlib_gallery:potentiel_morse]]
 +
 +{{:teaching:progappchim:potentiel_morse-04.png|}}
 +
 +==== pH d’un acide en fonction d’un ajout de base et d’une dilution ====
 +[[teaching:progappchim:ph-3d]]
 +
 +{{:teaching:progappchim:ph_topographic-01.png|}}
 +
 +==== Calculs sur des molécules ====
 +<code>methanol - Formula = CH4O
 +mol wt = 32.04186 - Numb atoms = 6 - Numb bonds =
 +12.0107 6 C x= 0.956 y= -0.086 z= -0.056
 +15.9994 8 O x= 0.488 y= -1.374 z= 0.299
 +1.00794 1 H x= 0.587 y= 0.64 z= 0.672
 +1.00794 1 H x= 0.584 y= 0.177 z= -1.05
 +1.00794 1 H x= 2.049 y= -0.08 z= -0.052
 +1.00794 1 H x= 0.831 y= -1.996 z= -0.365
 +partial charges = (0.28, -0.68, 0.0, 0.0, 0.0, 0.4)
 +total charge = 0
 +</code>
 +
 +Ces données ont été générées à partir de la chaîne smile ’CO’ du méthanol en utilisant des librairies Python existantes et les programmes de chimie OpenBabel
 +
 +===== Objectifs du cours =====
 +==== Développer des capacités à programmer ====
 +L’apprentissage des rudiments de la programmation vous permettra :
 +  * d’utiliser des petits programmes existants en les modifiant légèrement (niveau élémentaire)
 +  * d’écrire un programme pour solutionner un problème scientifique, en utilisant du code et des librairies existants (niveau normal)
 +  * d’élaborer un programme original pour solutionner un problème scientifique (niveau supérieur)
 +  * Utiliser des techniques de programmation avancées pour solutionner un problème original (niveau excellent)
 +
 +Quelque soit le niveau de la programmation, les programmes devront respecter les règles d’écriture communément admises
 +
 +==== Apprendre par la pratique ====
 +La pratique est la clé de l’apprentissage de tout langage ! Pour atteindre les objectifs, vous procéderez par étape :
 +  * Reproduire quelques programmes très simples pour se familiariser avec le cycle édition-exécution
 +  * Apprendre les bases en suivant le canevas proposé, un manuel/tutoriel, et en effectuant des exercices
 +  * Manipuler les outils d’aide, documenter et commenter Apprendre à rechercher et corriger les erreurs
 +  * Rechercher des exemples simples d’applications (scientifiques, mathématiques,...)
 +  * Programmer des problèmes inédits, simples
 +  * Utiliser des sources de codes et documentations diverses : livres, forums, sites web
 +  * Se donner un projet à réaliser, d’envergure adaptée à ses capacités, et le réaliser
 +
 +==== Aide en ligne, sites, manuels, fichiers, forums,... ====
 +  * Aide sur en ligne à partir de Idle, sous windows (touche F1)
 +  * sur python.org
 +  * sur les sites officiels de librairies utilisées
 +  * ...
 +
 +==== Références ====
 +  * Des documents du cours, des exemples et des applications, des réalisations d’étudiants d’années antérieures, des suggestions de travaux sont sur la page : [[teaching:progappchim:start]]
 +  * Des références générales sur Python sont regroupées à la page : [[floss :python]]
  
  • teaching/progappchim/presentation_principes.1487160628.txt.gz
  • Dernière modification : 2017/02/15 13:10
  • de villersd