LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


expert:python_algo

Différences

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

Lien vers cette vue comparative

expert:python_algo [2018/11/17 13:53] (Version actuelle)
Ligne 1: Ligne 1:
 +(page en cours de rédaction)
  
 +====== Le procédural en python ======
 +Python est bien entendu capable de faire du procédural, sinon, comment pourriez-vous coder des méthodes?
 +
 +Toutefois, si vous voulez faire du procédural pur, vous devriez utiliser un autre langage à terme. Vous pouvez d'ailleurs, en cas de besoin appeller dans vos programmes python des fonctions codées avec d'autres langages. C'est même assez fréquent pour les méthodes les plus complexes, ceci afin de les optimiser.
 +===== Le calcul =====
 +
 +Python est une calculatrice. En plus, il respecte les priorités opératoires. Les opérateurs mathématiques:
 +  * adition : +
 +  * soustraction : -
 +  * multiplication : *
 +  * division : /
 +  * modulo : %
 +
 +Le modulo donne le reste entier d'une division. 
 +
 +Voici quelques exemples:
 +
 +<code>
 +In [8]: 2+3
 +Out[8]: 5
 +
 +In [9]: 2*(3+4)
 +Out[9]: 14
 +
 +In [10]: 6/2
 +Out[10]: 3
 +
 +In [11]: 7/2
 +Out[11]: 3
 +
 +In [12]: 7/2.0
 +Out[12]: 3.5
 +
 +In [13]: 7%2
 +Out[13]: 1
 +</code>
 +
 +Vous voyez ici que lorsqu'on divise deux entiers, le résultat est nécessairement un entier. Pour avoir un résultat plus précis, on spécifie explicitement que l'un des termes est un flotant.
 +
 +Je vous laisse faire des tests avec votre interpréteur python.
 +===== Le types des données =====
 +
 +==== Les types de base ====
 +
 +Python accepte tous les types de données. Python a un typage dynamique, une variable peut être redéfinie à volonté, il sait reconnaître le type de données, pas besoin de le lui dire. Cependant, ce typage est fort, une fois que python a définit une varable comme étant d'un certain type, on ne la traite pas n'importe comment. 
 +
 +Le type de données, même si il est attribué dynamiquement, est donc très important. Voici les types de base en python:
 +  * integer : les nombres entiers
 +  * float : les nombres à virgule flotante
 +  * string : les chaînes de caractère
 +
 +Ça fait peu par rapport aux autres langages. Pour illustrer le typage fort, voici un petit exemple:
 +
 +<code>
 +In [4]: a=1
 +
 +In [5]: b="j"
 +
 +In [6]: type(a)
 +Out[6]: <type 'int'>
 +
 +In [7]: type(b)
 +Out[7]: <type 'str'>
 +
 +In [8]: c=2
 +
 +In [9]: a+c
 +Out[9]: 3
 +
 +In [10]: a+b
 +---------------------------------------------------------------------------
 +TypeError                                 Traceback (most recent call last)
 +
 +/home/zafx/<ipython console> in <module>()
 +
 +TypeError: unsupported operand type(s) for +: 'int' and 'str'
 +
 +In [11]: d="d"
 +
 +In [12]: b+d
 +Out[12]: 'jd'
 +</code>
 +
 +Ici, on voit qu'on peut aditionner deux entiers sans problème. Aditionner deux string concatène les deux mais on ne peut pas aditionner string et int.
 +==== Les listes ====
 +
 +Une liste est une variable qui peut contenir plusieurs éléments, de tout type.
 +
 +Voici les commandes de base pour manipuler les listes:
 +<code>
 +maListe = ["a", "b", "c", "d", "e", ]
 +# longueur de la liste:
 +len(a)
 +>5
 +# acceder à un des elements:
 +maListe[0]
 +>'a'
 +# ajouter un element:
 +maListe.append("f")
 +# enlever un élement:
 +maListe.remove("f")
 +</code>
 +
 +Il n'existe pas de tableaux en python. Cependant, une liste peut contenir d'autres listes! Si vous avez besoin d'un tableau, il vous suffit d'utiliser une liste de listes. Si vous aimez vous triturer l'esprit avec les tableaux à plusieurs dimensions, considérez les possibilités induites par une liste de listes de listes...
 +==== Les tuples ====
 +
 +Les tuples sont des listes non modifiables. L'intérêt du tuple est d'économiser l'espace mémoire:
 +
 +<code>
 +monTuple = (1, 2, 3, 4)
 +monTuple(2)
 +> 3
 +</code>
 +
 +Le nombre d'opérations possibles avec un tuple est assez limité.
 +==== Les dictionnaires ====
 +
 +===== Les opérateurs =====
 +
 +===== if ... elif ... else =====
 +
 +===== Les boucles =====
 +
 +==== for ====
 +
 +==== while ====
 +
 +===== Les expressions régulières =====
 +
 +===== Les décorateurs =====
 +
 +
 +===== Les autres tutos sur linuxPedia =====
 +  * [[expert:uml|Tutoriel sur la modélisation uml]]
 +  * Bases de programmation avec python:
 +    * [[expert:python_objet|Les bases de la programmation objet avec python]]
 +    * [[expert:python_algo|Les bases de la programmation procédurale en python]]
 +    * [[expert:sqlachemy|Les bases de données avec python]]
 +    * [[expert:python_metaclass|Les metaclassses python]]
 +    * [[expert:python_os|Intéraction entre python et le système]]
 +    * [[expert:python_fabric|La bibliothèque fabric]]
 +    * [[expert:python_virtualenv|Les environnements virtuels python]]
 +    * [[expert:python_cherrypy|Introduction aux frameworks web avec cherrypy]]
expert/python_algo.txt · Dernière modification: 2018/11/17 13:53 (modification externe)