Programmer en Python

Points Clés

〚Cours〛Outils Informatique
  • Ce cours couvre la programmation en Python 3.

  • Ce cours s’intéresse à la programmation dite impérative.

  • Python 3 est la version de Python la plus adaptée de nos jours.

Informatique et Programmation Impérative
  • Les langages de programmation servent à exprimer ce que l’on veut que l’ordinateur fasse.

  • La programmation est une sous partie de l’informatique.

  • L’informatique est une compétence capitale pour l’innovation dans toutes les disciplines.

Le Terminal et Bash
  • Le terminal est un programme qui ouvre une fenêtre et y exécute un autre programme (par exemple un interpéteur de commande).

  • Le terminal lit ce qui est tapé au clavier et l’envoie au programme lancé.

  • Le terminal affiche la sortie du programme lancé.

  • Bash est un interpréteur de commandes (la commande est le premier mot tapé sur une ligne).

  • La plupart des commandes Bash sont d’autres programmes (comme ls).

  • Bash a aussi des commandes internes (comme pwd et cd).

  • Bash à une notion de répertoire courant : il se « promène » dans l’arborescence de répertoires.

Arborescences de Fichier et Bash
  • Un chemin qui commence par / est un chemin absolu.

  • Tout autre chemin est un chemin relatif au repertoire courant.

  • Les chemins se lisent de gauche à droite, avec / comme séparateur.

  • Le répertoire spécial .. représente le parent du répertoire concerné.

  • Le répertoire spécial . représente le répertoire lui-même (répertoire courant quand en début de chemin).

Un Premier Programme
  • Un programme Python est un fichier texte brut.

  • L’extension normale pour les programmes Python est .py, par exemple nomDuFichier.py.

  • Un programme Python s’exécute avec python3 nomDuFichier.py.

  • En Python, print(…) permet de produire une sortie qui sera affichée dans le terminal.

  • La plupart des espaces (caractère  ) sont insignifiant, sauf en début de ligne.

  • Du « texte » est aussi appelé une « chaîne de caractères » ou string (en anglais).

  • En Python, len(…) permet d’obtenir la longueur d’une chaîne de caractères (le nombre de caractères qu’elle contient).

  • En Python, une chaîne de caractère doit être entre guillemets.

  • On peut utiliser au choix les guillemets simples 'toto' ou les doubles "toto" pour les chaînes de caractères.

Opérations sur des Nombres
  • Python permet d’utiliser les opérateurs mathématiques usuels +, -, * (une étoile pour multiplication) et /.

  • La priorité des opérateurs est la même qu’en mathématiques.

  • L’opérateur ** est utilisé pour la puissance, et marche aussi avec des puissances non-entières.

  • L’opérateur // est utilisé pour la division entière.

  • L’opérateur % (appelé « modulo ») est utilisé pour obtenir le reste de la division entière.

  • Par défaut, print(…, …, …) affiche ses paramètres séparés par des espaces, et ensuite une fin de ligne.

  • il est possible de changer le séparateur en utilisant print(…, …, …, sep=' et ') (pour utiliser ` et ` comme séparateur).

  • il est possible par expemple d’enlever le retour à la ligne en utilisant print(…, …, …, end='') (chaîne vide pour end).

Variables et Types
  • Un programme est exécuté de haut en bas.

  • Chaque valeur en python a un type, par exemple int (entier) ou float (nombre à virgule flottante) ou str (string, chaîne de caractères).

  • Il est possible d’associer/d’affecter une valeur à un nom, on appelle cela une variable.

  • Une variable change de valeur uniquement quand on lui ré-affecte une nouvelle valeur.

  • On peut connaître le type d’une valeur avec type(…).

  • Le nom d’une variables n’a pas d’importance pour l’ordinateur.

  • Il est cependant primordial de choisir des noms de variables pertinents pour aider à la (re)lecture du programme.

  • Un programme est écrit pour être compris à la fois par l’ordinateur et par l’humain.

Apprendre par l'Erreur
  • C’est en faisant des erreurs que l’on apprend.

  • Un programme peut être erroné de part sa structure.

  • Un programme peut générer des erreurs si certaines opérations sont utilisées avec des types ou des valeurs inadaptées.

  • Même si les messages d’erreurs sont en anglais et parfois compliqués, ils pointent relativement précisément l’erreur dans le programme.

  • Les erreurs sont souvent du même type et il devient de plus en plus facile de comprendre les messages d’erreur.

  • Quand un message d’erreur est relativement original, il est possible de le copier coller dans un moteur de recherche pour trouver des pistes de solution.

Fonctions Prédéfinies et Aide
  • Python fourni un ensemble de fonctions prédéfinies telles que print, abs, min, max, len, help.

  • On « appelle » la fonction (on l’exécute) quand on écrit son nom suivi de valeurs de paramètres entre parenthèses.

  • Une fonction peut accepter un nombre arbitraire de paramètres (y compris aucun paramètre).

  • Chaque fois que l’on appelle une fonction, une valeur est retournée.

  • La valeur spéciale None représente une valeur vide.

  • La fonction prédéfinie help(…) permet d’afficher « interactivement » le manuel d’une fonction.

Bibliothèques et Importation de Fonctions
  • Une bibliothèque fourni un ensemble de fonctions et constantes utiles.

  • La bibliothèque math fourni des fonctions (sin, log, etc) et des constantes telles que pi et e.

  • Il est nécessaire d’installer une bibliothèque avant de pouvoir importer ses fonctions.

  • Certaines bibliothèques sont installées par défaut.

  • La notation truc.machin veut dire que l’on accède à machin qui se trouve à l’intérieur de truc, ici la fonction machin dans le module truc.

  • Il est possible d’importer un module, une fonction en particulier ou l’ensemble des fonctions d’un module.

Bibliothèque Graphique qtido
  • La bibliothèque qtido vous est fourni par vos enseignants.

  • La bibliothèque qtido permet entre autre de créer des fenêtres graphiques, d’y tracer des figures et du texte, d’y ajouter des boutons, et de gérer les événements clavier et souris.

  • Pour pouvoir utiliser la bibliothèque qtido, il faut avoir le fichier qtido.py à coté du programme qui l’utiliser.

  • Les coordonnées pour le tracer sont données en pixels, avec le point 0,0 en haut à gauche de la fenêtre.

  • La bibliothèque qtido a aussi un mode « tortue ».

Entrées Utilisateur
  • Quand on lance un programme il est possible d’y ajouter des paramètres, par exemple, python3 monprogramme.py toto 42.

  • La variable argv contenue dans le module sys permet d’accéder au paramètres du programme.

  • On peut accéder au nom du fichier python avec sys.argv[0] (qui vaut monprogramme.py dans l’exemple).

  • On peut accéder au premier paramètre du programme avec sys.argv[1] (qui vaut toto dans l’exemple).

  • Avec len(sys.argv) on obtient un nombre entier contenant le nombre de paramètres + 1 (ce 1 vient du fait que l’on a aussi accès au nom du fichier python).

  • Dans un programme, la fonction input() attend que l’utilisateur tape une ligne de texte au clavier et renvoie ce qui a été tapé.

  • La fonction input(…) peut accepter un paramètre appelé le prompt, c’est à dire qu’il sera affiché pour inciter l’utilisateur à taper.

  • Il faut bien comprendre la distinction entre les paramètres d’un programme (dans sys.argv) et la fonction input.

  • Les paramètres sont des chaînes de caractères.

  • Dans tous les cas input(…) renvoie une chaîne de caractères.

  • On peut convertir une valeur en entier avec int(…), en flottant avec float(…) ou en chaîne de caractères avec str(…) (pour string).

Instructions Conditionnelles
  • Python dispose des opérateurs de comparaison ==, !=, <, <=, >, >=.

  • Une comparaison est soit vraie (valeur True), soit fausse (valeur False).

  • L’exécution conditionnelle s’exprime grâce au mot clé if.

  • L’indentation (nombre d’espaces en début de ligne) est capitale en Python car elle défini un bloc de code.

  • Il est possible d’imbriquer des if (mettre un if dans le bloc d’un autre if).

Instructions Conditionnelles (2)
  • Une conditionnelle if peut être suivie d’un ou plusieurs elif et d’un else.

  • Les elif et d’un else aident à écrire des programmes plus clairs.

Boucles while (tant que)
  • La boucle while (tant que) permet de répéter l’exécution d’un bloc de code.

  • Le corps de la boucle while doit être indenté.

Listes de Valeurs
  • Une liste (appelée aussi « tableau ») est un conteneur d’éléments, qui contient une suite de valeurs.

  • Une liste a comme type list.

  • Les éléments d’une liste peuvent être de types quelconques (et potentiellement différents).

  • Les indices commencent à 0. Le premier élément a pour indice 0, le second a pour indice 1, etc.

Listes de Valeurs (2)
  • Les listes peuvent être manipulés de manière comparable aux chaînes de caractères par exemple avec len(…), *, +.

  • Certaines fonctions comme min(…), max(…), sum(…) fonctionnent aussi avec une liste en paramètre.

  • La fonction list.append(l, e) permet d’ajouter un élément à la fin d’une liste (la liste est modifiée).

Boucles for
  • À l’aide de for, il est aussi possible de parcourir les caractères d’une chaîne de caractères.

  • La boucle while permets aussi de réaliser un parcours à la manière de for.

Définitions de fonctions
  • Une fonction peut être définie à l’aide de def.

  • Une fonction a un nombre arbitraire de paramètres.

  • Une fonction retourne toujours une valeur.

  • L’instruction return permet d’interrompre la fonction et de renvoyer une valeur.

  • La valeur spéciale None représente l’absence de valeur (de retour).

〚Cours〛Informatique (L2)
  • Ce cours construit sur le précédent et le suppose acquis.

  • Ce cours traite du calcul numérique sur tableau et du tracé de graphes.

  • Ce cours couvre aussi des bonnes pratiques de programmation.

Listes en compréhension
  • Il est possible de mettre un for dans des crochets pour créer une liste.

  • Les listes en compréhesion peuvent contenir des conditions if et être imbriquées.

Indexage avancé de listes
  • Un indice négatif compte en partant de la fin de la liste.

  • L’indice de -1 représente le dernier élément de la liste, -2 l’avant dernier, etc.

Introduction Numpy
  • Numpy permet de représenter des tableaux de données et de manipuler ces tableaux facilement.

  • Numpy propose l’équivalent de range mais pour la création de tableaux numpy, avec np.arange et np.linspace.

  • Numpy permet aussi de créer des tableaux (par exemple remplis de 0) de taille demandée.

  • Numpy permet aussi de créer des tableaux de taille demandée, mais en tirant les valeurs au sort.

Aspect pratiques

Glossaire

Dossier
Voir Répertoire
Répertoire
Dans un espace de stockage, un conteneur qui peut contenir un nombre quelconque de répertoires et fichiers.
Fichier
Dans un espace de stockage, un document qui peut être soit du texte brut (comme un programme python), soit un fichier binaire (comme une image jpeg ou un document excel ou word).

Merci de m’envoyer vos contributions à ce glossaire, par exemple par email (ou via github ).