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)