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
memopython [2016/07/21 15:09]
frag [Importer un module]
memopython [2017/09/10 09:01]
frag
Ligne 1: Ligne 1:
 +====== Mémo Python3 ======
 +
 +Il y a peu, j'ai commencé un peu le Python. C'est un langage qui me rebutait assez jusqu'​ici,​ essentiellement à cause de sa manie d'​utiliser les tabulations pour formater les blocs de code. Et puis un jour, j'ai réalisé que c'est exactement ce que je fait quand j'​écris du pseudo code pour mettre au point un algo. Alors, je me suis dit : "​Pourquoi ne pas y rejeter un coup d'oeil ?". Et finalement, j'ai découvert un langage plutôt sympa, très bien structuré avec une bibliothèque de fonctionnalités assez conséquente ! Ce petit mémo, c'est juste pour garder en tête (et à portée de main) les principes du langage. J'ai décidé de ne couvrir que Python 3, c'est la version actuelle du langage.
 +
 +Ce mémo couvre la syntaxe de base du langage.
 +Pour la bibliothèque de fonctions, [[BibliothequePython|c'​est par ici]]...
 +
 Pour commencer, quelques remarques générales : Pour commencer, quelques remarques générales :
  
   * Python n'a qu'un seul type de fichier source, comme Java ou C# (et contrairement à C/C++).   * Python n'a qu'un seul type de fichier source, comme Java ou C# (et contrairement à C/C++).
   * Les identificateurs sont sensibles à la casse   * Les identificateurs sont sensibles à la casse
 +
 +====== Commentaires ======
 +
 +Les commentaires commencent par le symbole # et s'​étendent jusqu'​à la fin de la ligne.
 +
 +<code python>
 +# Je suis un commentaire.
 +</​code>​
 +
 +Un commentaire multiligne peut être fait en utilisant la syntaxe des chaînes multilignes.
 +
 +<code python>
 +"""​ Je suis un commentaire
 +qui s'​étend
 +sur plusieurs lignes."""​
 +</​code>​
 +
  
 ====== Déclaration de fonction ====== ====== Déclaration de fonction ======
Ligne 98: Ligne 122:
 ====== Les modules ====== ====== Les modules ======
  
-Chaque script est un module en lui-même. A l'​intérieur d'un script, la variable spéciale __name__ vaut le nom du module s'il a été importé et la valeur "​__main__"​ si on est dans le module principal.+Chaque script est un module en lui-même. A l'​intérieur d'un script, la variable spéciale ​''<​nowiki>​__name__</​nowiki>'' ​vaut le nom du module s'il a été importé et la valeur ​''​"<​nowiki>​__main__</​nowiki>​"'' ​si on est dans le module principal.
  
 ====== Les types de données ====== ====== Les types de données ======
Ligne 104: Ligne 128:
 Les principaux types de données sont : Les principaux types de données sont :
  
-  * Booléens : True ou False +  * Booléens : ''​True'' ​ou ''​False''​ 
-  * Nombres : Entiers (ex : 1), Flottants (ex : 1.0), Fractions (ex : 1/3)+  * Nombres : Entiers (ex : ''​1''​), Flottants (ex : ''​1.0''​), Fractions (ex : ''​1/3''​)
   * Chaînes : Toujours UNICODE   * Chaînes : Toujours UNICODE
   * Octets et tableaux d'​octets   * Octets et tableaux d'​octets
Ligne 118: Ligne 142:
 La conversion entier vers flottant se fait avec l'​opérateur ''​float()''​ et l'​inverse avec ''​int()''​ (attention, ''​int()''​ tronque le flottant, il n'y a pas d'​arrondi !) La conversion entier vers flottant se fait avec l'​opérateur ''​float()''​ et l'​inverse avec ''​int()''​ (attention, ''​int()''​ tronque le flottant, il n'y a pas d'​arrondi !)
  
-Les opérateurs classiques sont supportés (''​+'',​ ''​-'',​ ''​*'',​ ''/''​) ainsi que : ''//''​ : la division entière ''​**''​ : l'​exposant et ''​%''​ : le modulo+Les opérateurs classiques sont supportés (''​+'',​ ''​-'',​ ''​*'',​ ''/''​) ainsi que : ''​<​nowiki>​//</​nowiki>​''​ : la division entière ''​<​nowiki>​**</​nowiki>​''​ : l'​exposant et ''​%''​ : le modulo
  
 Les listes sont déclarées avec des crochets. ​ Les listes sont déclarées avec des crochets. ​
Ligne 127: Ligne 151:
 <code python> <code python>
 ma_liste = [ 1, 2, 3, 4, 5, 6 ] ma_liste = [ 1, 2, 3, 4, 5, 6 ]
-ma_liste[0] ​   # -> 1 +ma_liste[0] ​    ​# -> 1 
-ma_liste[1] ​   # -> 2+ma_liste[1] ​    ​# -> 2
 ma_liste[-1] ​   # -> 6 ma_liste[-1] ​   # -> 6
-ma_liste[0:​2] ​   # -> [ 1, 2, 3 ]+ma_liste[0:​2] ​  ​# -> [ 1, 2, 3 ]
 ma_liste[:​3] ​   # -> [ 1, 2, 3, 4 ] ma_liste[:​3] ​   # -> [ 1, 2, 3, 4 ]
 ma_liste[5:​] ​   # -> [ 6 ] ma_liste[5:​] ​   # -> [ 6 ]
-ma_liste[:​] ​   # -> [ 1, 2, 3,  4, 5, 6 ]+ma_liste[:​] ​    ​# -> [ 1, 2, 3,  4, 5, 6 ]
 </​code>​ </​code>​
 +
 +====== L'​algorithmique de base ======
 +
 +La règle de base est : une ligne de code = une instruction. Il est toutefois possible de mettre plusieurs instructions à la suite en les séparant par un '';''​.
 +Une instruction peut être découpée en plusieurs ligne avec un ''​\''​ (ou implicitement en faisant un retour à la ligne après la virgule d'un paramètre dans un appel de fonction.
 +
 +Les commentaires sont les lignes qui commencent par une dièse ''#''​.
 +
 +===== Mots clés =====
 +
 +Il n'y a que 33 mots-clés en Python :
 +
 +  * ''​and''​
 +  * ''​as''​
 +  * ''​assert''​
 +  * ''​break''​
 +  * ''​class''​
 +  * ''​continue''​
 +  * ''​def''​
 +  * ''​del''​
 +  * ''​elif''​
 +  * ''​else''​
 +  * ''​except''​
 +  * ''​finally''​
 +  * ''​for''​
 +  * ''​from''​
 +  * ''​global''​
 +  * ''​if''​
 +  * ''​import''​
 +  * ''​in''​
 +  * ''​is''​
 +  * ''​lambda''​
 +  * ''​nonlocal''​
 +  * ''​not''​
 +  * ''​or''​
 +  * ''​pass''​
 +  * ''​raise''​
 +  * ''​return''​
 +  * ''​try''​
 +  * ''​while''​
 +  * ''​with''​
 +  * ''​yield''​
 +
 +De plus, ''​None'',​ ''​True''​ et ''​False''​ sont également des mots-clés (qui représentent l'​élément vide et les deux valeurs booléennes possibles).
 +
 +===== Opérateurs =====
 +
 +Les opérateurs en Python sont :
 +  * ''​+''​
 +  * ''​-''​
 +  * ''​*''​
 +  * ''​**''​
 +  * ''/''​
 +  * ''<​nowiki>//</​nowiki>''​
 +  * ''​%''​
 +  * ''​~''​
 +  * ''&''​
 +  * ''​|''​
 +  * ''​^''​
 +  * ''>''​
 +  * ''<''​
 +  * ''>​=''​
 +  * ''<​=''​
 +  * ''​!=''​
 +  * ''​==''​
 +  * ''<​nowiki>>></​nowiki>''​
 +  * ''<​nowiki><<</​nowiki>''​
 +
 +Les opérateurs unaires s'​appliquent à l'​objet qui les porte. Les opérateurs binaires s'​appliquent à l'​objet de gauche en reçoivent l'​objet de droite en paramètre.
 +
 +<​code>​
 +>>>​ '​a'​ * 2
 +'​aa'​
 +
 +>>>​ 2 * '​a'​
 +NotImplemented
 +</​code>​
 +
 +