teaching:progappchim:presentation_principes

Ceci est une ancienne révision du document !


~~REVEAL transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&open_in_new_window=1~~

Programmer en Python

  • Qu'est-ce qu'un langage de programmation ?
  • Compilation ou interprétation, ou… ?
  • Décrire des instructions dans un langage compréhensible par un être humain, mais transformable en d'autres instructions compréhensibles par l'ordinateur (langage machine)
  • Automatiser le traitement de l'information;
  • Effectuer des calculs, des simulations;
  • Traiter l'information en temps réel;
  • Fournir un interface à l'utilisateur;
  • L’assembleur (à partir des années 50’s)
    • Mnémoniques équivalentes aux instructions machines, donc fonction du processeur utilisé
    • Instructions de bas niveaux (appel d’une variable en mémoire, opération arithmétique entre 2 opérandes,…)
  • Fortran, Cobol, Pascal, C, Basic,… (années 60s et 70s)
    • Indépendants de l’ordinateur utilisé
    • Proche d’un langage courant, description procédurale
  • Les langages à objets (années 80s et 90s)
    • Briques logicielles indépendantes et autonomes
    • Réutilisations aisées, sans devoir les approfondir
    • Java, C++, Python, perl, Ruby. . .sont les plus connus
  • Des langages spécialisés (PHP, SQL,…)
Code source
Compilation
Code objet
Exécution
Résultat
  • Etape de traduction du code source en langage machine
  • Liaison éventuelle du code avec des bibliothèques existantes de code compilé
  • Exécution ultérieure du code machine (sur un ordinateur ne disposant pas du compilateur par exemple)
  • Le compilateur peut optimiser le code (passes multiples)
Code source
Interprétation
Résultat
  • Traduction dynamique du code source et exécution immédiate en répétant sans cesse :
    • lecture et analyse d'une instruction
    • exécution de l'instruction (si elle est valide)
  • Le code est souvent moins optimisé, donc plus lent
  • Il est nécessaire de disposer de l'interpréteur sur l'ordinateur
  • On peut créer dynamiquement du code à interpréter pendant l'exécution
  • On peut éviter la phase lente de compilation
Code source Python (.py, .py3)
Compilation
Python Bytecode (.pyc)
Interprétation
Résultat
  • Pour Python (et d'autres langages), c’est un peu plus compliqué…
  • Le programme est compilé vers un pseudo-code indépendant de l’ordinateur
  • Le Bytecode est interprété par la suite
  • Avantages :
    • Facilité de développement (cycle écriture-exécution rapide, “briques” logicielles)
    • Portabilité (même programme pour des ordinateurs et OS différents)
  • Avantages généraux
  • Avantages techniques
  • Avantages pour l'apprentissage
  • Avantages pour le scientifique, le chimiste
  • Les premiers pas avec Python
  • langage de haut niveau (orienté objet)
  • permet d’écrire des petits programmes ou suites d’instructions (scripts)
  • licence libre (et gratuit)
  • utilisable pour la programmation occasionnelle par des non-informaticiens
  • nombreuses librairies existantes (modules)
  • moderne et efficace pour les informaticiens
  • excellente lisibilité intrinsèque du code
  • bien documenté (aide et manuels en ligne, livres, forums, exemples…)
  • mode interactif
  • non déclaratif
  • typage de haut niveau, dynamique et fort
  • ramasse-miette intégré
  • interfaçable avec d’autres langages (à partir de et vers)
  • version de base “piles comprises”
    • module mathématique
    • accès aux fichiers et répertoires (+ formats de données standards)
    • compression, archivage, gestion de bases de données
    • fonctions génériques du système d’exploitation
    • réseau et communication, protocoles internet (+email, html)
    • multimedia (son, image)
    • interface graphique (Tkinter)
    • outils de documentation et gestion d’erreurs (débogage)
    • modules spécifiques Windows, Mac, Linux
  • Installation aisée
    • de la version de base
    • de “distributions” étendues (avec des modules complémentaires)
  • éditeur inclus (Idle) ou autre (SciTe, Pycharm, Eric,…)
  • mode interactif pour les premiers essais
  • principes de base identiques à de nombreux langages
  • on n’est pas obligé d’utiliser toute la puissance du langage
  • cycle d’écriture/essais très rapide
  • possible de débuter en quelques jours
  • alternative à des logiciels spécialisés (matlab, scilab,…)
  • bon pour les calculs scientifiques, le graphisme, les simulations
  • modules spécialisés
    • représentations graphiques 2D (Matplotlib)
    • représentations graphiques 3D (Mayavi, Vpython, VTK,)
    • calculs scientifiques (numpy, scipy,. . .)
    • traitement d’images (PIL)
    • chimie (pymol, mmtk, chimera,…)
    • biochimie (biopython)

Idle3 : interpréteur Python en console, avec exécution directe

>>> (8.314*300/24E-3)/101325
1.0256600049346163
>>>
  • Commandes : copyrigth, credits, license(), quit, help, help(),…

On peut attribuer des noms de variables, pas seulement pour des nombres…

>>> R=8.314
>>> L=0.001
>>> V=24*L
>>> n=1
>>> zero=273.16
>>> T=20+zero
>>> P=n*R*T/V
>>> atm=101325
>>> print(P,P/atm)
101555.51000000001 1.0022749568221072
>>>


==== Un peu de calcul ====
On peut effectuer quelques calculs sur des entiers :

>>> 1236*5698
7042728
>>> 12569+6233
18802
>>> 12+69+532+65-9
669
>>> 12356*458955
5670847980L
>>> 123*456
56088
>>> 123**456 ?? A ESSAYER ??
  • On peut travailler avec des très très très grands nombres…
>>> 7/3
2.3333333333333335
>>> 7//3
2
>>> 
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/presentation_principes.1485794256.txt.gz
  • Dernière modification : 2017/01/30 17:37
  • de villersd