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 17/07/2008, 17:49]
83.186.142.235, 127.0.0.1
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:
-{{tag>​programmation ​projets:​école ​python}}+{{tag>​programmation ​éduction ​python}}
  
 ---- ----
Ligne 10: Ligne 10:
 ==== 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 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. 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.
Ligne 53: Ligne 53:
   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 aet -3 et pas -2.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
Ligne 83: Ligne 86:
 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.
Ligne 113: Ligne 116:
  
 # On affiche le tout # On affiche le tout
-print "​bonjour",​ prenom, nom+print ("​bonjour",​ prenom, nom)
 </​code>​ </​code>​
  
Ligne 147: Ligne 150:
  
 == 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 157: 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 175: Ligne 178:
  
  
 +==== Listes ====
  
-hello+=== Définir une liste === 
 +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 : 
 +  a = "coup de fil à maman"​ 
 +  b = "​acheter du café"​ 
 +  c = "​upgrader vers gutsy"​ 
 +A chaque nouvel élément il faudrait ajouter une variable, c'est ingérable. On peut alors utiliser : 
 +  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 : 
 +  todo = [a, b, c]
  
 +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 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"​)
 +Dans l'​interpréteur,​ affichez maintenant todo:
 +  todo
 +Le nouvel élément a bien été ajouté à notre liste.
 +
 +''​todo''​ est l'​objet auquel on s'​intéresse,​ append() la méthode. ATTENTION, todo.method != todo.method(). todo.method correspond à la suite d'​instruction qui définissent les actions de la méthode, alors que todo.method() correspond au fait d'​appliquer ces instructions.
 +Vous noterez que '​todo'​ a été modifié sans que l'on ait besoin de lui réassigner une nouvelle valeur ; on n'a pas eu besoin de faire :
 +  todo = todo.methode()
 +
 +=== 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 :
 +  todo[0]
 +Le nombre d'​éléments contenus dans une liste est donné par len(liste) :
 +  nb = len(todo)
 +Donc le dernier élément de la liste est :
 +  todo[nb - 1]
 +
 +Si l'on veut agir sur tous les éléments d'une liste, on utilise l'​instruction ''​for''​ :
 +  for item in todo:
 +        # on commence un bloc d'​instructions
 +        # avec une nouvelle indentation
 +        # '​item'​ est une variable à laquelle on assigne
 +        # la valeur de l'​élément courant du tableau
 +
 +Pour afficher un élément du tableau par ligne on peut donc utiliser :
 +  for untodo in todo:
 +        print " - %s" % untodo
 +
 +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 ====
 +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'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 :
 +<code python>
 +def list_print(texte):​
 + n_texte = " - %s - " % texte
 + return n_texte
 +</​code>​
 +  * ''​def''​ précise à python que l'on débute la description d'une fonction ;
 +  * ''​texte''​ est un paramètre ;
 +  * ''​return''​ permet de mettre fin à la fonction, et de renvoyer le contenu d'une variable.
 +
 +Notez l'​indentation pour la définition de bloc.
 +
 +Une fonction ne doit pas forcément retourner quelque chose, elle peut par exemple juste ecrire du texte.
 +
 +Dans un script, cette fonction pourra être appelée comme ceci :
 +  txt1 = "​hello"​
 +  txt2 = "​bye"​
 +  ntxt = (list_print(txt1),​ list_print(txt2))
 +  print """​%s
 +  %s
 +  """​ % (ntxt[0], ntxt[1])
 +
 +A noter :
 +  * l'​utilisation des triples " pour une chaîne de caractères qui s'​affichera sur plusieurs lignes ;
 +  * l'​utilisation de "%s %s" % (a, b) : si l'on a plus de 2 chaînes à remplacer, on les met entre parenthèses.
  
-hello 
  • projets/ecole/python/1.1216309786.txt.gz
  • Dernière modification: Le 01/08/2008, 17:42
  • (modification externe)