Programmation avec Python

Documents pareils
TP 1. Prise en main du langage Python

STAGE IREM 0- Premiers pas en Python

Présentation du langage et premières fonctions

Initiation à la programmation en Python

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Chapitre 2 Devine mon nombre!

Notions fondamentales du langage C# Version 1.0

L informatique en BCPST

Algorithmique et Programmation, IMA

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Algorithmique et programmation : les bases (VBA) Corrigé

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions


Découverte de Python

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Web. Madalina Croitoru IUT Montpellier

V- Manipulations de nombres en binaire

Introduction à MATLAB R

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Utilisation d objets : String et ArrayList

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Le langage C. Séance n 4

2 Comment fonctionne un ordinateur, dans les grandes lignes

Bases de programmation. Cours 5. Structurer les données

Python - introduction à la programmation et calcul scientifique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

1 Recherche en table par balayage

Présentation du PL/SQL

Chapitre I Notions de base et outils de travail

Module : Informatique Générale 1. Les commandes MS-DOS

INF 321 : mémento de la syntaxe de Java

ALGORITHMIQUE ET PROGRAMMATION En C

Cours d algorithmique pour la classe de 2nde

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Premiers Pas avec OneNote 2013

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Introduction au langage C

La mémoire. Un ordinateur. L'octet. Le bit

Introduction à l algorithmique et à la programmation M1102 CM n 3

Plan du cours. Historique du langage Nouveautés de Java 7

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

La programmation orientée objet et le langage C++

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

AWS avancé. Surveiller votre utilisation d EC2

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Initiation à LabView : Les exemples d applications :

Guide d installation de MySQL

ACTIVITÉ DE PROGRAMMATION

Représentation d un entier en base b

UE Programmation Impérative Licence 2ème Année

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Programmer en JAVA. par Tama

DM 1 : Montre Autoquartz ETA

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

1 Lecture de fichiers

Évaluation et implémentation des langages

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Programmation C. Apprendre à développer des programmes simples dans le langage C

Introduction à l informatique en BCPST

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Langage Java. Classe de première SI

IV- Comment fonctionne un ordinateur?

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Conventions d écriture et outils de mise au point

Vue d ensemble de Windows PowerShell

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

1. Structure d'un programme FORTRAN 95

Algorithme. Table des matières

Programmation système I Les entrées/sorties

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

GUIDE Excel (version débutante) Version 2013

I00 Éléments d architecture

La saisie d un texte

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours Informatique Master STEP

Cours 1 : Qu est-ce que la programmation?

Rappels sur les suites - Algorithme

Microprocesseur + Logiciel

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Scratch : programmation objet facile pour tous

Initiation à la Programmation en Logique avec SISCtus Prolog

Convertisseur BBAN/IBAN

Traitement de texte : Quelques rappels de quelques notions de base

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Solutions du chapitre 4

1 Démarrage de Marionnet

Cours Informatique 1. Monsieur SADOUNI Salheddine

Transcription:

Programmation avec Python La programmation procédurale Adel Daouzli LOL (LyonOpenLab) Mél : daouzli@gmail.com Web : http://lyonopenlab.net/programmation Adel Daouzli Programmation - Python 1 / 39

Introduction Programmation Sujet vaste et abondamment traité Permet de développer des programmes informatiques (jeux, graphismes, traitement de texte, multimédia, industrie, web,...) Actuellement la POO (Programmation Orientée Objet) est très en vogue De nombreux langages pour différentes applications (C/C++, Python, Perl, PHP, Assembleur, Java,...) Adel Daouzli Programmation - Python 2 / 39

Introduction Python Le nom est un clin d oeil aux Monthy Python Langage interprété (scripts) Langage entièrement Orienté Objet Tout à fait possible de faire abstraction de l Objet! Syntaxe simple et purifiée Permet de se concentrer sur l essentiel Langage très riche et performant malgré sa simplicité apparente Adel Daouzli Programmation - Python 3 / 39

Introduction Python Le nom est un clin d oeil aux Monthy Python Langage interprété (scripts) Langage entièrement Orienté Objet Tout à fait possible de faire abstraction de l Objet! Syntaxe simple et purifiée Permet de se concentrer sur l essentiel Langage très riche et performant malgré sa simplicité apparente Objectifs de ce cours Apprendre les bases de la programmation Apprendre le langage Python Connaître les subtilités du langage Adel Daouzli Programmation - Python 3 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 4 / 39

La programmation en Python Au préalable Il vous faut évidemment Python d installé (normalement c est fait sous Linux, pour les autres OS voir http://www.python.org/download) Vous pouvez utiliser l éditeur que vous préférez. Je vous conseille sous GNU/Linux vim ou Geany, sous windows Notepad++. Pour ceux qui aiment Eclipse vous pouvez utiliser le module PyDev. Ce cours essaie d être indépendant de la version de Python que vous utilisez mais il y aura forcément des différences notament entre les versions antérieur à la version 3 et cette dernière. Je m efforcerais de préciser les différences lorsqu il y en a. Mais il est préférable d apprendre à utiliser Python 3 étant la nouvelle version. Normalement, ce qui est codé ici devrait fonctionner sur Linux et d autres systèmes mais je vous conseille vivement de coder sous Linux qui sera plus adapté à la programmation et qui est le système que j utilise pour ce cours. Adel Daouzli Programmation - Python 5 / 39

La programmation en Python Pour commencer... Lancez l interpréteur Python dans un terminal (sous windows cmd ou command.com) en tapant python Vous pouvez lire le numéro de version dans la première affichée à la console à côté de Python. Vous pouvez aussi depuis un terminal taper python version Une fois Python lancé, vous aurez un prompt indiquant >>> et un curseur clignotant après lequel vous pourrez entrer vos commandes. Pour information, lorsqu on entre un nombre ou une chaîne de caractères ou un nom de variable et qu on valide par Entrée, l interpréteur affiche le nombre ou la chaîne saisi ou la valeur de la variable. Adel Daouzli Programmation - Python 6 / 39

La programmation en Python Afficher un message Pour afficher un message dans la console, comme nous venons de le voir l interpréteur le fait automatiquement. Mais il est possible de le faire de façon volontaire, il faut alors utiliser la fonction print. Ceci est indispensable si vous exécutez votre programme en dehors de l interpréteur (vous pouvez depuis le terminal taper python nom de mon script.py). En Python 3 il faut mettre le message à afficher entre parenthèses ce qui n étais pas obligatoire dans les versions précédentes. Exemples: print("hello world!") print(15) print "coucou vous" (ne marche plus à partir de Python 3!) Adel Daouzli Programmation - Python 7 / 39

La programmation en Python Afficher un message On peut afficher plusieurs éléments (texte, variables, valeurs) en les concaténant de deux manières. L opérateur + permet de concaténer des chaînes. print("hello " + "toi") On peut afficher des éléments de types différents en utilisant la virgule print("j ai", 15, "ans et", 10, "dents") On peut utiliser une chaîne formatée. On indique par {} un élément à insérer dans la chaîne qu on fournit dans la fonction format() qui suit un point après la chaîne. print("j ai {} ans et {} dents".format(15, 10)) Adel Daouzli Programmation - Python 8 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 9 / 39

Les variables Les différents types Les variables permettent de stocker des données qui peuvent être de différents types. Cela permet de mémoriser une information pour la traiter, l afficher, l initialiser,... Il en existe différents types: Les nombres (âge du capitaine, rayon d un cercle, nombre de pommes dans un panier...) Les chaînes de caractères (nom, citation, discours,...) Les booléens (vrai/faux) Les conteneurs (liste de course, coordonnées GPS, coordonnées d une personne (nom/prénom/adresse..)) Les objets (tout et n importe quoi!) Adel Daouzli Programmation - Python 10 / 39

Les variables Nommage/Affectation Le nom est quelconque et peut contenir des lettres minuscules/majuscules, chiffres (ne doit pas commencer le nom), et le caractère underscore. Il ne doit pas contenir de caractères spéciaux ni d espaces. Pour mettre une valeur dans une variable on utilise le caractère = Pour afficher le contenu d une variable utilisez print : print(ma variable) Exemples: age_du_capitaine = 58 print(age_du_capitaine) super_nom = toto print(super_nom) ma_liste = [ poireaux, carottes, endives, lessive ] print(ma_liste) Adel Daouzli Programmation - Python 11 / 39

Les variables Nommage/Affectation Le nom est quelconque et peut contenir des lettres minuscules/majuscules, chiffres (ne doit pas commencer le nom), et le caractère underscore. Il ne doit pas contenir de caractères spéciaux ni d espaces. Pour mettre une valeur dans une variable on utilise le caractère = Pour afficher le contenu d une variable utilisez print : print(ma variable) Exemples: age_du_capitaine = 58 print(age_du_capitaine) super_nom = toto print(super_nom) ma_liste = [ poireaux, carottes, endives, lessive ] print(ma_liste) Remarque Python reconnaît tout seul le type de donnée qu on manipule! (pas de typage explicite) Pour connaître le type d une variable on utilise la fonction type() comme suit: type(ma variable) Adel Daouzli Programmation - Python 11 / 39

Les variables Les chaines de caractères Pour stocker tous ce qui peut être affiché. Ce qui définit une chaîne: Des délimiteurs qui sont soit, soit, soit 3 fois l un ou l autre Les et permettent d écrire des chaîne de caractères sur une ou plusieurs lignes Tout ce qui se trouve entre les délimiteurs est la chaîne de caractères Le délimiteur pour indiquer la fin de chaîne doit être le même que celui indiquant le début de chaîne On peut à peu près tout convertir en chaîne de caractères (nombres, listes, divers objets,..) Adel Daouzli Programmation - Python 12 / 39

Les variables Les chaines de caractères Pour stocker tous ce qui peut être affiché. Ce qui définit une chaîne: Des délimiteurs qui sont soit, soit, soit 3 fois l un ou l autre Les et permettent d écrire des chaîne de caractères sur une ou plusieurs lignes Tout ce qui se trouve entre les délimiteurs est la chaîne de caractères Le délimiteur pour indiquer la fin de chaîne doit être le même que celui indiquant le début de chaîne On peut à peu près tout convertir en chaîne de caractères (nombres, listes, divers objets,..) Remarque On ne pourra pas utiliser l apostrophe lorsque celle-ci sert de délimiteur sinon il faut l échapper avec le caractère spécial \ou alors utiliser les guillemets comme délimiteur. Le corollaire est vrai. L avantage des délimiteurs et est qu on peut écrire sans problème les caractères et sans les échapper. Adel Daouzli Programmation - Python 12 / 39

Les variables Chaînes Exemple d affectation de chaînes: chaine = "c est une chaine" chaine2 = voici une autre chaîne chaine3 = """ encore un exemple de chaine qui peut être écrite sur plusieurs lignes""" chaine4 = idem pour celle -ci qui peut s écrire sur plusieurs lignes Conversion: une variable de n importe quel type chaîne : chaine = str(une variable) nombre chaîne : chaine nb = str(235) nombre entier chaîne hexadécimale : chaine hexa = hex(1045235) (donnera 0xff2f3 ) Adel Daouzli Programmation - Python 13 / 39

Les variables Les nombres Nombres entiers (-15, 12384,..), à virgule flottante (12.5, -79.8789, 1.5e-12,..) Opérateurs utilisables pour faire des calculs : // : division entière en Python3 / et % : division et modulo et : multiplication et puissance + et : addition et soustraction et ˆ: OU inclusif et OU exlusif & : ET : inversion de bits << et >> : décalages à gauche et à droite Convertible en chaîne de caractères et vice-versa Adel Daouzli Programmation - Python 14 / 39

Les variables Nombres Exemple de calculs: nombre = 4 moyenne = (5 + 12.75 + 18 + 10.5) / nombre carre_de_nombre = nombre ** 2 Conversion: mon nombre = 8.123 entier chaîne : chaine = str(mon nombre) ma chaine = 25 chaîne entier : nb = int(ma chaine) ma chaine = 15.725 chaîne flottant : nb = f loat(ma chaine) ma chaine hexa = AF1B30 (ou 0xAF1B30 ) chaîne hexadécimale entier : nb = int(ma chaine hexa, 16) Adel Daouzli Programmation - Python 15 / 39

Les variables Les booléens Les deux valeurs possible sont True et False. Exemple d affectation : mon_booleen = True Les booléen sont utiles pour les tests conditionnels que nous verrons plus loin. Adel Daouzli Programmation - Python 16 / 39

Les variables Les listes, tuples et dictionnaires Voici un simple aperçu. Nous verrons ces objets plus tard dans ce cours. Les listes permettent de stocker plusieurs éléments de types différents ou de même type. Exemple d affectation : ma_liste = [ toto, 15, 0x125, 156.25, "c est super!!"] Les tuples sont des listes constantes, dont on ne peut pas modifier les données une fois initialisées. Exemple d affectation : mon_tuple = (2.3e5, 25, toto ) Les dictionnaires permettent de stocker des données associées à des clés. Les clées et les données peuvent être de types différents. Exemple d affectation : mon_dico = { nom : toto, age :15, adr : 1 rue Jolie } Adel Daouzli Programmation - Python 17 / 39

Les variables Lire depuis le clavier Il serait intéressant d affecter une variable avec des données demandée à l utilisateur. Ceci rajoutera de l interaction avec l utilisateur et rendra nos programmes plus dynamiques. La fonction input() permet de lire des informations depuis le clavier: nom = input( entre ton nom: ) print(nom) age = input( entre ton age: ) age = int(age) print(age) En réalité les données sont lues depuis l entrée standard (par défaut le clavier). Attention Avec les anciennes version de Python il faut utiliser raw input() pour lire une chaîne de caractères. input() permettait de lire des données que Python peut évaluer (nombres, listes, expressions,..). Pour obtenir un comportement similaire à partir de Python3, il faut utiliser eval(input()) Adel Daouzli Programmation - Python 18 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 19 / 39

Les structures de contrôle Blocs d instruction Pour l instant nous savons récupérer des données saisies depuis le clavier, les stocker dans des variables. Nous savons faire quelques manipulations avec les variables et les afficher à l écran. Il peut être nécessaire de regrouper des instructions dans des blocs. Par exemple si on veut qu une suite d instructions s exécutent à une certaine condition et qu une autre suite sous une autre condition. Cela est nécessaire aussi si on veut répéter une certaine suite d instruction un certain nombre de fois. Pour délimiter un bloc d instruction en Python, nous utilisons l indentation! En effet il suffit que l ensemble des instructions regroupées soient alignées sur une même colonne (même nombre d espaces ou de tabulations à gauche) Adel Daouzli Programmation - Python 20 / 39

Les structures de contrôle Blocs d instructions si UNE_CONDITION: instruction_1a instruction_2a instruction_3a... si AUTRE_CONDITION: instruction_1b instruction_2b instruction_3b... boucle_tant_que CONDITION: instruction_1c instruction_2c... Notez qu il faut être uniforme dans les séparations d un même bloc en utilisant exactement les même séparateurs. Il est fortement conseillé d utiliser des espaces (de préférence au nombre de 4). Adel Daouzli Programmation - Python 21 / 39

Les structures de contrôle Les tests conditionnels Il s agit d éxécuter des instructions uniquement si une condition est vérifiée. Les conditions sont des tests dont le résultat est un booléen True ou False Tests de comparaisons: a == b a égal b a!= b a différent de b a < b / a > b / a <= b / a >= b a inférieur/supérieur / ou égal b a is b a est un objet de type b Tests d appartenance à une séquence (liste, dictionnaire, tuple, chaîne): a in b a est dans la séquence b a not in b a n est pas dans la séquence b Faire plusieurs tests: CONDITION A or CONDITION B il faut qu au moins une des conditions soit vraie pour que le test soit vrai CONDITION A and CONDITION B il faut que les deux conditions soit vraies pour que le test soit vrai On peut enchaîner plusieurs conditions dans le même test et utiliser des parenthèses si nécessaire. On peut utiliser not pour inverser un Adel Daouzli résultat. Programmation - Python 22 / 39

Les structures de contrôle Les tests Pour effectuer un test on utilise les mots clés if elif else: age = input("donnez votre âge : ") if age < 15: print("tu devrais être couché!") elif age >= 15 and age < 18: print("tu es un adolescent") elif age <= 30: print("vous êtes un jeune homme") else: print("vous avez de la bouteille!") permis_valide = True if (age < 18 or age > 80) and permis_valide == True: print("vous êtes sûr que votre permis est valide?") chaine = "abcde" if "d" in chaine: print("la lettre d est dans la chaine") liste = ["toto", "foo", "jean -luc"] if "dadel" not in liste: print("vous n êtes pas inscrit sur la liste") Adel Daouzli Programmation - Python 23 / 39

Les structures de contrôle Les boucles Il peut être utile de pouvoir répéter une suite d instructions en fonction d une condition ou en parcourant un certain nombre d éléments. Boucle for pour un certain nombre de fois Boucle while tant qu une condition est valide Adel Daouzli Programmation - Python 24 / 39

Les structures de contrôle Boucle for On va répéter des instructions un certain nombre de fois. Cette répétition va consister à parcourir une séquence et pour chaque élément de la séquence les instructions sont exécutées. Nous utiliserons le mot clé in mais qui indiquera cette fois-ci la séquence que l on parcours en récupérant à chaque fois l élément dans la variable de parcours. sequence = [ toto, jean -luc, rms, foobar ] for element in sequence: print(element) if - in element: print("est un nom composé!") else: print("n est pas un nom composé") for i in range(5): print(i) # la fonction range produit une liste de nombres démarrant à Adel Daouzli Programmation - Python 25 / 39

Les structures de contrôle Boucle while On va répéter des instructions qu une condition est vérifiée. Nous pouvons utiliser les mêmes tests qu avec if. nb_essais = 10 nombre = 8 reponse = input("a quel nombre je pense (1-10): ") while reponse!= nombre and nb_essais > 0: print(" Mauvaise reponse. Nombre d essais restant :", nb_essais) reponse = input("a quel nombre je pense (1-10): ") nb_essais = nb_essais - 1 if reponse == nombre: print("bravo!") Adel Daouzli Programmation - Python 26 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 27 / 39

Les listes Parcours des listes -créer une liste : liste = [] -ajouter un élément à une liste: liste.append( elem ) liste.append(5) Adel Daouzli Programmation - Python 28 / 39

Les listes Compréhension de liste La compréhension de liste est une technique avancée de Python permettant de générer des listes. Ceci peut être assimiler à de la programmation fonctionnelle. Adel Daouzli Programmation - Python 29 / 39

Les listes Les itérateurs Adel Daouzli Programmation - Python 30 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 31 / 39

Les Entrée/Sorties Introduction C est sympathique de pouvoir stocker des données dans des variables mais il serait plus intéressant de pouvoir les lire depuis depuis un fichier. Tant qu à faire, autant pouvoir les enregistrer aussi dans un fichier. Adel Daouzli Programmation - Python 32 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 33 / 39

Les fonctions Fonction simple Adel Daouzli Programmation - Python 34 / 39

Les fonctions Affectation du nom de fonction à une variable Adel Daouzli Programmation - Python 35 / 39

Les fonctions Listes et dictionnaires de paramètres Adel Daouzli Programmation - Python 36 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 37 / 39

Plan 1 Démarrage 2 Les variables 3 Les structures de contrôle 4 Les listes 5 Les Entrées/Sorties 6 Les fonctions 7 Les décorateurs 8 Bilan Adel Daouzli Programmation - Python 38 / 39

Bilan Merci mon tit Python ;-) Nous avons appris les bases de la programmation procédurale Nous avons appris particulièrement Python La prochaine fois Nous apprendrons l approche Orientée Objet Nous verrons la puissance de Python Adel Daouzli Programmation - Python 39 / 39