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
projets:ecole:python:1 [Le 20/10/2007, 12:56]
82.228.174.13 Ajout de double-point au else de l'introduction "conditions"
projets:ecole:python:1 [Le 11/09/2022, 13:17] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-===== Sessions ​Python ​1 =====+{{tag>​programmation éduction python}} 
 + 
 +---- 
 + 
 +====== Cours sur Python ​====== 
 + 
 + 
 +===== Session ​1 =====
  
 ==== Introduction ==== ==== Introduction ====
-Python est né au début des années 1980, son père est Guido van Rossum. Sa version actuelle est la 2.5.1. 
  
-Python est présent partout, vous l'​utilisez tous les jours avec Ubuntu, ​red hat en use et abuse, de même que google ​(van Rossum est employé par Google). Vous avez aussi très certainement vu python ​en action avec Launchpad.+Python est né au début des années 1990, son père est Guido van Rossum. Les deux versions ​ actuelles sont  la 2.7.2 et la 3.2.2. 
 + 
 +Python est présent partout, vous l'​utilisez tous les jours avec Ubuntu, ​Red Hat en use et abuse, de même que Google ​(van Rossum est employé par Google). Vous avez aussi très certainement vu Python ​en action avec Launchpad
 + 
 +Ce cours est une introduction au langage, en abordant certaines notions de base de la programmation. Le but est d'​être clair pour les gens qui n'ont jamais programmé, donc certains « pythonismes » seront volontairement mis de côté. On approfondira dans d'​autres sessions.
  
-Ce cours est une introduction au langage, en abordant certaines notions de base de la programmation. Le but est d'​être clair pour les gens qui n'ont jamais programmé, donc certains "​pythonismes"​ seront volontairement mis de côté. On approfondira dans d'​autres sessions. 
  
 ==== L'​interpréteur de commandes ==== ==== L'​interpréteur de commandes ====
  
-Python est un langage ​"interprété", c'est à dire qu'un script ne nécessite pas de compilation pour être exécuté. Il existe un interpréteur qui permet d'​interagir avec l'​utilisateur. Pour le lancer, démarrez un terminal et lancez :+Python est un langage ​« interprété ​», c'est-à-dire qu'un script ne nécessite pas de compilation pour être exécuté. Il existe un interpréteur qui permet d'​interagir avec l'​utilisateur. Pour le lancer, démarrez un terminal et lancez :
   python   python
-Commençont ​par une utilisation très simple, en faisant faire du calcul à python :+Commençons ​par une utilisation très simple, en faisant faire du calcul à python :
   3*6   3*6
   4-9   4-9
  
 === Notion de variable === === Notion de variable ===
-Les variables correspondent à des zones de stockage de valeurs. Elles sont désignées par des mots contenant les lettres minuscules, majuscules, chiffres et underscore "​_"​. Une variable ne peut avoir un nom commençant par un chiffre. 
  
-A une variable on assigne une valeur grâce à l'​instruction ​"=", par exemple (dans l'​interpréteur) :+Les variables correspondent à des zones de stockage de valeurs. Elles sont désignées par des mots contenant les lettres minuscules, majuscules, les chiffres et le tiret bas « _ »((En anglais : //​underscore//​.)). Une variable ne peut avoir un nom commençant par un chiffre. 
 + 
 +A une variable on assigne une valeur grâce à l'​instruction ​« », par exemple (dans l'​interpréteur) :
   a = 4   a = 4
   b = 5   b = 5
Ligne 30: Ligne 40:
   c   c
  
-La première et la troisème ​instruction sont identiques, mais le résultat diffère suivant l'​initialisation.+La première et la troisième ​instruction sont identiques, mais le résultat diffère suivant l'​initialisation.
  
-Une variable peut "dépendre" ​d'elle même :+Une variable peut « dépendre ​» d'elle même :
   a = 4   a = 4
   a = a + 1   a = a + 1
   a   a
-Attention à la casse ! 'A' ​est différent de 'a'.+Attention à la casse ! « » est différent de « ».
  
 === Notion de type === === Notion de type ===
  
-On n'a utilisé que des entiers pour l'​instant. ​python ​l'a remarqué :+On n'a utilisé que des entiers pour l'​instant. ​Python ​l'a remarqué :
   a = 5   a = 5
   a / 2   a / 2
-On obtient 2, et pas 2.5. Pourquoi ? python arrondi tout simplement à l'​entier inférieur car on lui a suggéré que a est un entier. Comment faire alors ? Préciser à python que a est un "flottant" ​:+  b = -5 
 +  b / 2 
 +On obtient 2, et pas 2.5 pour a, et -3 et pas -2.5 pour b. Pourquoi ? python arrondi tout simplement à l'​entier inférieur car on lui a suggéré que a est un entier. 
 +<note important>​En Python 3, le résultat est bien 2.5 pour a et -2.5 pour b</​note> ​Comment faire alors ? Préciser à python que a est un « flottant ​» :
   a = 5.0   a = 5.0
   a / 2   a / 2
  
-Un autre type très courant est la "​chaîne ​de caractère" ​(string en anglais). Elle est définie en plaçant du texte entre "" ​ou entre '' ​:+Un autre type très courant est la « chaine ​de caractère ​» (//string// en anglais). Elle est définie en plaçant du texte entre « " ​» ou entre « ' ​» :
   une_chaine = "Je suis une chaine."​   une_chaine = "Je suis une chaine."​
   une_chaine   une_chaine
  
-On peut 'ajouter' ​des chaînes, on appelle ça la concaténation:​+On peut « ajouter ​» des chaines, on appelle ça la concaténation :
   a = "​Bonjour "   a = "​Bonjour "
   b = "Monde !"   b = "Monde !"
Ligne 61: Ligne 74:
   b = "​1"​   b = "​1"​
   b   b
-Notez la différence entre les 2 résultats. La première fois python affiche un entier, la seconde une chaîne ​de caractères (entre '').+Notez la différence entre les 2 résultats. La première fois python affiche un entier, la seconde une chaine ​de caractères (entre ​« ' ​»).
  
    a+b    a+b
-Une erreur résulte de ce calcul, puisque a et b sont de type différents.+ 
 +Une erreur résulte de ce calcul, puisque ​//a// et //b// sont de type différents.
  
  
Ligne 71: Ligne 85:
  
 Un des intérêts d'un programme est de pouvoir interagir avec l'​utilisateur. On va voir pour ça deux instructions et comment les utiliser : Un des intérêts d'un programme est de pouvoir interagir avec l'​utilisateur. On va voir pour ça deux instructions et comment les utiliser :
-  * raw_input() permet de demander à l'​utilisateur de saisir un texte (texte au sens large, on commencera avec des nombres) ; +  * ''​raw_input()'' ​permet de demander à l'​utilisateur de saisir un texte (texte au sens large, on commencera avec des nombres) ; 
-  * print permet d'​afficher du texte.+  * ''​print("​texte"​)'' ​permet d'​afficher du texte.
  
 Ce sont deux fonctions, qui utilisent un ou plusieurs arguments (des données qu'​elles traiteront). Nous aborderons les fonctions un peu plus loin. Ce sont deux fonctions, qui utilisent un ou plusieurs arguments (des données qu'​elles traiteront). Nous aborderons les fonctions un peu plus loin.
  
-raw_input() s'​utilise de cette manière :+''​raw_input()'' ​s'​utilise de cette manière : 
   resultat = raw_input("​Veuillez saisir quelque chose : ")   resultat = raw_input("​Veuillez saisir quelque chose : ")
-La chaîne ​de caractère sera affichée à l'​écran,​ et le curseur attendra que l'​utilisateur saisisse du text puis <​entrée>​. Ce qui a été saisi sera alors assigné à la variable ''​résultat''​ (en tant que chaîne ​de caractère).+ 
 +La chaine ​de caractère sera affichée à l'​écran,​ et le curseur attendra que l'​utilisateur saisisse du texte puis « Entrée ». Ce qui a été saisi sera alors assigné à la variable ''​résultat''​ (en tant que chaine ​de caractère).
  
 Pour ensuite afficher ce texte on peut utiliser : Pour ensuite afficher ce texte on peut utiliser :
 +
   print "Du texte qui ne change pas et autre chose :", resultat   print "Du texte qui ne change pas et autre chose :", resultat
 +
 Les éléments à afficher sont séparés par une virgule, qui apparaitre comme un simple espace lors de l'​exécution. Les éléments à afficher sont séparés par une virgule, qui apparaitre comme un simple espace lors de l'​exécution.
  
-"Du texte qui ne change pas et autre chose :" et ''​resultat''​ sont deux arguments de la fonction ''​print''​.+''​"Du texte qui ne change pas et autre chose :"'' ​et ''​resultat''​ sont deux arguments de la fonction ''​print''​.
  
 Regardons maintenant cet exemple : Regardons maintenant cet exemple :
-  ​#​!/​usr/​bin/​env python +<code python>​ 
-  # -*- coding: UTF8 -*- +#​!/​usr/​bin/​env python 
-   +# -*- coding: UTF8 -*- 
-  # On demande le nom + 
-  nom = raw_input("​Quel est votre nom ? ") +# On demande le nom 
-   +nom = raw_input("​Quel est votre nom ? ") 
-  # On demande le prénom + 
-  prenom = raw_input("​Quel est votre prénom ? ") +# On demande le prénom 
-   +prenom = raw_input("​Quel est votre prénom ? ") 
-  # On affiche le tout + 
-  print "​bonjour",​ prenom, nom+# On affiche le tout 
 +print ("​bonjour",​ prenom, nom
 +</​code>​ 
  
 Quelques petites remarques : Quelques petites remarques :
-  * les lignes qui commencent par '#' ​ne sont pas lues par python, ce sont des lignes de commentaires. Elle sont utiles pour détailler certains éléments de votre script ; +  * les lignes qui commencent par « » ne sont pas lues par Python, ce sont des lignes de commentaires. Elle sont utiles pour détailler certains éléments de votre script ; 
-  * la première ligne est un 'shebang', qui permet à votre shell que savoir avec quel programme lancer votre script lorsqu'​il est exécutable (./​exemple1.py) ; +  * la première ligne est un « shebang ​», qui permet à votre shell que savoir avec quel programme lancer votre script lorsqu'​il est exécutable (**./​exemple1.py**) ; 
-  * la seconde définit l'​encodage,​ c'est essentiel pour nous francophones qui utilisont des accents (python ​n'aime pas vraiment les accents sans encodage précisé).+  * la seconde définit l'​encodage,​ c'est essentiel pour nous francophones qui utilisont des accents (Python ​n'aime pas vraiment les accents sans encodage précisé). 
 + 
 +Copiez ce script dans un fichier « exemple.py » et exécutez :
  
-Copiez ce script dans un fichier ''​exemple.py''​ et exécutez : 
   python exemple.py   python exemple.py
  
-En guise d'​exercice, ​ecrivez ​un script qui demande l'âge de 2 personnes, et qui affiche la différence d'​âge. Rappelez vous que raw_input() récupère une chaîne ​de caractère, qu'il faudrait transformer en entier pour faire le calcul. La fonction ​''​int'' ​qui prend en argument une chaine de caratère, et retourne sa conversion en entier.+En guise d'​exercice, ​écrivez ​un script qui demande l'âge de 2 personnes, et qui affiche la différence d'​âge. Rappelez vous que //raw_input()// récupère une chaine ​de caractère, qu'il faudrait transformer en entier pour faire le calcul. La fonction ​//int// qui prend en argument une chaine de caractère, et retourne sa conversion en entier.
  
 === Conditions === === Conditions ===
 Pour que le script réagisse suivant ce que l'​utilisateur à saisi, on utilise des instructions de contrôle, ''​if''​ et ''​else''​. Elle s'​utilisent comme ceci : Pour que le script réagisse suivant ce que l'​utilisateur à saisi, on utilise des instructions de contrôle, ''​if''​ et ''​else''​. Elle s'​utilisent comme ceci :
 +<code python>
   if (une_condition_est_vraie):​   if (une_condition_est_vraie):​
         # on execute         # on execute
Ligne 118: Ligne 141:
         # sinon         # sinon
         # on fait autre chose         # on fait autre chose
 +</​code>​
 La syntaxe est (je pense) assez claire, mais elle amène quelques nouvelles notions. La syntaxe est (je pense) assez claire, mais elle amène quelques nouvelles notions.
  
 == Les booléens == == Les booléens ==
-Une variable booléennes est une variable qui n'​accepte que 2 valeurs : vrai ou faux (True ou False en python). On peut étendre ceci aux nombres et dire : si c'est 0 c'est faux, sinon (dans tous les autres cas), c'est vrai.+ 
 +Une variable booléennes est une variable qui n'​accepte que 2 valeurs : vrai ou faux (''​True'' ​ou ''​False'' ​en Python). On peut étendre ceci aux nombres et dire : si c'est 0 c'est faux, sinon (dans tous les autres cas), c'est vrai.
 "​une_condition_est_vraie"​ va donc être une expression qui sera soit vraie (ou non nulle), soit fausse (nulle). Si elle est vraie, on exécute la première partie de la condition (juste après ''​if'',​ sinon la deuxième (ce qui suit ''​else''​). "​une_condition_est_vraie"​ va donc être une expression qui sera soit vraie (ou non nulle), soit fausse (nulle). Si elle est vraie, on exécute la première partie de la condition (juste après ''​if'',​ sinon la deuxième (ce qui suit ''​else''​).
  
 == L'​indentation == == L'​indentation ==
-Pour connaître toutes les instructions à exécuter si la condition est vraie, on définit un "​bloc"​. Ce bloc est défini par une indentation (<​tab>​ en général) : +Pour connaître toutes les instructions à exécuter si la condition est vraie, on définit un "​bloc"​. Ce bloc est défini par une indentation (<​tab>​ en général) :
         # on execute         # on execute
         # une série         # une série
Ligne 136: Ligne 160:
   b = 2   b = 2
   if (a > b):   if (a > b):
-        print "a>b"+        print ("​a ​est supérieur à b")
   else:   else:
-        print "b>a"+        print ("​b ​est supérieur ou égal à a")
  
 Quel sera le résultat du script ? Quel sera le résultat du script ?
Ligne 151: Ligne 175:
  
 Vous pouvez maintenant reprendre l'​exercice de tout à l'​heure et systématiquement afficher un résultat positif. Vous pouvez maintenant reprendre l'​exercice de tout à l'​heure et systématiquement afficher un résultat positif.
 +
 +
  
 ==== Listes ==== ==== Listes ====
Ligne 157: Ligne 183:
 Utiliser une variable par élément à saisir, ça devient très vite ingérable (imaginez ce que ça donnerait pour gérer une liste de 10000 clients). Python possède un autre type de données, les listes. Utiliser une variable par élément à saisir, ça devient très vite ingérable (imaginez ce que ça donnerait pour gérer une liste de 10000 clients). Python possède un autre type de données, les listes.
 Il s'agit en fait d'un "​tas"​ de variables groupées en une seule. Par exemple (pour notre liste de choses à faire) on pourrait avoir : Il s'agit en fait d'un "​tas"​ de variables groupées en une seule. Par exemple (pour notre liste de choses à faire) on pourrait avoir :
-  a = "coup de fil à manman"+  a = "coup de fil à maman"
   b = "​acheter du café"   b = "​acheter du café"
   c = "​upgrader vers gutsy"   c = "​upgrader vers gutsy"
 A chaque nouvel élément il faudrait ajouter une variable, c'est ingérable. On peut alors utiliser : A chaque nouvel élément il faudrait ajouter une variable, c'est ingérable. On peut alors utiliser :
-  todo = ["coup de fil à manman", "​acheter du café",​ "​upgrader vers gutsy"​]+  todo = ["coup de fil à maman", "​acheter du café",​ "​upgrader vers gutsy"​]
 Notez que si l'on a déjà initialisé a, b et c on peut aussi utiliser : Notez que si l'on a déjà initialisé a, b et c on peut aussi utiliser :
   todo = [a, b, c]   todo = [a, b, c]
  
-On n'a plus qu'une seule variable, qui contient un ensemble cohérent d'​éléments,​ et qui peux bien entendu être modifiée.+On n'a plus qu'une seule variable, qui contient un ensemble cohérent d'​éléments,​ et qui peut bien entendu être modifiée.
  
-Une liste est ce qu'on appelle un '​objet'​ (comme n'​importe quel élément en python, mais peu importe pour le moment). Et à un objet correspond ​des '​méthodes'​. Ces méthodes sont des actions que l'on peut appliquer à l'​objet. Par exemple, on peut ajouter un élément à notre liste :+Une liste est ce qu'on appelle un '​objet'​ (comme n'​importe quel élément en python, mais peu importe pour le moment). Et à un objet correspondent ​des '​méthodes'​. Ces méthodes sont des actions que l'on peut appliquer à l'​objet. Par exemple, on peut ajouter un élément à notre liste :
   todo.append("​préparer le cours python sur l'​orienté objet"​)   todo.append("​préparer le cours python sur l'​orienté objet"​)
 Dans l'​interpréteur,​ affichez maintenant todo: Dans l'​interpréteur,​ affichez maintenant todo:
Ligne 177: Ligne 203:
   todo = todo.methode()   todo = todo.methode()
  
-=== Accéder ​ux éléments ===+=== Accéder ​aux éléments ===
 On accède aux éléments d'une liste par leur indice (de 0 à (nombre_d_elements - 1)). Le premier élément est donc accessible par : On accède aux éléments d'une liste par leur indice (de 0 à (nombre_d_elements - 1)). Le premier élément est donc accessible par :
   todo[0]   todo[0]
Ligne 197: Ligne 223:
  
 Notez au passage l'​utilisation particulière de ''​print''​. ''​%s''​ sera remplacé par la valeur de ''​untodo''​ lors de l'​affichage. Notez aussi que la variable ''​untodo''​ aurait pu prendre n'​importe quel nom (elle s'​appelait ''​item''​ un peu plus haut). Notez au passage l'​utilisation particulière de ''​print''​. ''​%s''​ sera remplacé par la valeur de ''​untodo''​ lors de l'​affichage. Notez aussi que la variable ''​untodo''​ aurait pu prendre n'​importe quel nom (elle s'​appelait ''​item''​ un peu plus haut).
 +
  
 ==== Fonctions - introduction ==== ==== Fonctions - introduction ====
 On a parlé tout à l'​heure des méthodes pour un objet. Le terme '​méthode'​ est lié à la programmation orientée objet, un terme plus générique étant '​fonction'​. On a parlé tout à l'​heure des méthodes pour un objet. Le terme '​méthode'​ est lié à la programmation orientée objet, un terme plus générique étant '​fonction'​.
  
-L'​intérêt d'un fonction est d'​éviter des répétitions du même code. Par exemple, votre programme va appliquer la même mise en page à du texte à plusieurs reprises, il est alors intéressant d'​utiliser une fonction.+L'​intérêt d'une fonction est d'​éviter des répétitions du même code. Par exemple, votre programme va appliquer la même mise en page à du texte à plusieurs reprises, il est alors intéressant d'​utiliser une fonction.
 Cette fonction pourrait être définie comme suit : Cette fonction pourrait être définie comme suit :
-  ​def list_print(texte):​ +<code python>​ 
-        n_texte = " - %s - " % texte +def list_print(texte):​ 
-        return n_texte + n_texte = " - %s - " % texte 
 + return n_texte 
 +</​code>​
   * ''​def''​ précise à python que l'on débute la description d'une fonction ;   * ''​def''​ précise à python que l'on débute la description d'une fonction ;
   * ''​texte''​ est un paramètre ;   * ''​texte''​ est un paramètre ;
  • projets/ecole/python/1.1192877773.txt.gz
  • Dernière modification: Le 20/10/2007, 15:48
  • (modification externe)