Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| projets:ecole:python:1 [Le 11/01/2010, 01:21] – Spirzouf | projets:ecole:python:1 [Le 12/04/2017, 15:41] (Version actuelle) – tags L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Cours sur Python ====== | ||
| + | |||
| + | |||
| + | ===== Session 1 ===== | ||
| + | |||
| + | ==== Introduction ==== | ||
| + | |||
| + | Python est né au début des années 1990, son père est Guido van Rossum. Les deux versions | ||
| + | |||
| + | Python est présent partout, vous l' | ||
| + | |||
| + | Ce cours est une introduction au langage, en abordant certaines notions de base de la programmation. Le but est d' | ||
| + | |||
| + | |||
| + | ==== L' | ||
| + | |||
| + | Python est un langage « interprété », c' | ||
| + | python | ||
| + | Commençons par une utilisation très simple, en faisant faire du calcul à python : | ||
| + | 3*6 | ||
| + | 4-9 | ||
| + | |||
| + | === 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, les chiffres et le tiret bas « _ »((En anglais : // | ||
| + | |||
| + | A une variable on assigne une valeur grâce à l' | ||
| + | a = 4 | ||
| + | b = 5 | ||
| + | a + b | ||
| + | Les valeurs contenues par les variables a et b ont été utilisées pour réaliser l' | ||
| + | |||
| + | Une variable doit avoir été initialisée pour être utilisée : | ||
| + | c | ||
| + | c = 1 | ||
| + | c | ||
| + | |||
| + | La première et la troisième instruction sont identiques, mais le résultat diffère suivant l' | ||
| + | |||
| + | Une variable peut « dépendre » d'elle même : | ||
| + | a = 4 | ||
| + | a = a + 1 | ||
| + | a | ||
| + | Attention à la casse ! « A » est différent de « a ». | ||
| + | |||
| + | === Notion de type === | ||
| + | |||
| + | On n'a utilisé que des entiers pour l' | ||
| + | a = 5 | ||
| + | a / 2 | ||
| + | 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' | ||
| + | <note important> | ||
| + | a = 5.0 | ||
| + | a / 2 | ||
| + | |||
| + | 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 | ||
| + | |||
| + | On peut « ajouter » des chaines, on appelle ça la concaténation : | ||
| + | a = " | ||
| + | b = "Monde !" | ||
| + | a + b | ||
| + | |||
| + | Pour mettre le doigt sur une possible confusion, essayons ceci : | ||
| + | a = 1 | ||
| + | a | ||
| + | b = " | ||
| + | b | ||
| + | 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 | ||
| + | |||
| + | Une erreur résulte de ce calcul, puisque //a// et //b// sont de type différents. | ||
| + | |||
| + | |||
| + | |||
| + | ==== Premier script ==== | ||
| + | |||
| + | Un des intérêts d'un programme est de pouvoir interagir avec l' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Ce sont deux fonctions, qui utilisent un ou plusieurs arguments (des données qu' | ||
| + | |||
| + | '' | ||
| + | |||
| + | resultat = raw_input(" | ||
| + | |||
| + | La chaine de caractère sera affichée à l' | ||
| + | |||
| + | Pour ensuite afficher ce texte on peut utiliser : | ||
| + | |||
| + | 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' | ||
| + | |||
| + | ''" | ||
| + | |||
| + | Regardons maintenant cet exemple : | ||
| + | <code python> | ||
| + | # | ||
| + | # -*- coding: UTF8 -*- | ||
| + | |||
| + | # On demande le nom | ||
| + | nom = raw_input(" | ||
| + | |||
| + | # On demande le prénom | ||
| + | prenom = raw_input(" | ||
| + | |||
| + | # On affiche le tout | ||
| + | print (" | ||
| + | </ | ||
| + | |||
| + | |||
| + | 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 ; | ||
| + | * la première ligne est un « shebang », qui permet à votre shell que savoir avec quel programme lancer votre script lorsqu' | ||
| + | * la seconde définit l' | ||
| + | |||
| + | Copiez ce script dans un fichier « exemple.py » et exécutez : | ||
| + | |||
| + | python exemple.py | ||
| + | |||
| + | En guise d' | ||
| + | |||
| + | === Conditions === | ||
| + | Pour que le script réagisse suivant ce que l' | ||
| + | <code python> | ||
| + | if (une_condition_est_vraie): | ||
| + | # on execute | ||
| + | # une série | ||
| + | # d' | ||
| + | else: | ||
| + | # sinon | ||
| + | # on fait autre chose | ||
| + | </ | ||
| + | La syntaxe est (je pense) assez claire, mais elle amène quelques nouvelles notions. | ||
| + | |||
| + | == Les booléens == | ||
| + | |||
| + | Une variable booléennes est une variable qui n' | ||
| + | " | ||
| + | |||
| + | == L' | ||
| + | Pour connaître toutes les instructions à exécuter si la condition est vraie, on définit un " | ||
| + | # on execute | ||
| + | # une série | ||
| + | # d' | ||
| + | Ce bloc sera exécuté si la condition est vérifiée. | ||
| + | |||
| + | Prenons un exemple de comparaison d' | ||
| + | a = 1 | ||
| + | b = 2 | ||
| + | if (a > b): | ||
| + | print ("a est supérieur à b") | ||
| + | else: | ||
| + | print ("b est supérieur ou égal à a") | ||
| + | |||
| + | Quel sera le résultat du script ? | ||
| + | |||
| + | L' | ||
| + | * ''>'' | ||
| + | * ''> | ||
| + | * '' | ||
| + | Les conditions peuvent être multiples et inclure des '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Vous pouvez maintenant reprendre l' | ||
| + | |||
| + | |||
| + | |||
| + | ==== Listes ==== | ||
| + | |||
| + | === 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 " | ||
| + | a = "coup de fil à maman" | ||
| + | b = " | ||
| + | c = " | ||
| + | A chaque nouvel élément il faudrait ajouter une variable, c'est ingérable. On peut alors utiliser : | ||
| + | todo = ["coup de fil à maman", | ||
| + | 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' | ||
| + | |||
| + | Une liste est ce qu'on appelle un ' | ||
| + | todo.append(" | ||
| + | Dans l' | ||
| + | todo | ||
| + | Le nouvel élément a bien été ajouté à notre liste. | ||
| + | |||
| + | '' | ||
| + | Vous noterez que ' | ||
| + | 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' | ||
| + | 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' | ||
| + | for item in todo: | ||
| + | # on commence un bloc d' | ||
| + | # avec une nouvelle indentation | ||
| + | # ' | ||
| + | # la valeur de l' | ||
| + | |||
| + | Pour afficher un élément du tableau par ligne on peut donc utiliser : | ||
| + | for untodo in todo: | ||
| + | print " - %s" % untodo | ||
| + | |||
| + | Notez au passage l' | ||
| + | |||
| + | |||
| + | ==== Fonctions - introduction ==== | ||
| + | On a parlé tout à l' | ||
| + | |||
| + | L' | ||
| + | Cette fonction pourrait être définie comme suit : | ||
| + | <code python> | ||
| + | def list_print(texte): | ||
| + | n_texte = " - %s - " % texte | ||
| + | return n_texte | ||
| + | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Notez l' | ||
| + | |||
| + | 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 = " | ||
| + | txt2 = " | ||
| + | ntxt = (list_print(txt1), | ||
| + | print """ | ||
| + | %s | ||
| + | """ | ||
| + | |||
| + | A noter : | ||
| + | * l' | ||
| + | * l' | ||
