Initiation à la programmation avec Python. Sommaire du cours n 2. Syntaxe générale de la conditionnelle Exemple (1) :

Documents pareils
Cours 3 : Python, les conditions

Présentation du langage et premières fonctions

STAGE IREM 0- Premiers pas en Python

Initiation à la programmation en Python

TP 1. Prise en main du langage Python

Programmer en JAVA. par Tama


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

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

Cours Informatique Master STEP

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

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)

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

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

2 Comment fonctionne un ordinateur, dans les grandes lignes

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

ACTIVITÉ DE PROGRAMMATION

Conventions d écriture et outils de mise au point

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

Java Licence Professionnelle CISII,

I. Introduction aux fonctions : les fonctions standards

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

Programmation C++ (débutant)/instructions for, while et do...while

Recherche dans un tableau

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Chapitre 2 Devine mon nombre!

Cours d algorithmique pour la classe de 2nde

Langage Java. Classe de première SI

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction au langage C

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Machines virtuelles fonctionnelles (suite) Compilation ML Java

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

Découverte de Python

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Notions fondamentales du langage C# Version 1.0

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

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

1. Structure d'un programme FORTRAN 95

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

Cours 1 : Qu est-ce que la programmation?

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TD3: tableaux avancées, première classe et chaînes

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Rappels Entrées -Sorties

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Examen Médian - 1 heure 30

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

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

OCL - Object Constraint Language

Solutions du chapitre 4

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

Projet de programmation (IK3) : TP n 1 Correction

TP, première séquence d exercices.

Programme Compte bancaire (code)

Initiation à l algorithmique

INF 321 : mémento de la syntaxe de Java

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

AWS avancé. Surveiller votre utilisation d EC2

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

GOL502 Industries de services

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Entraînement à la communication 2. Révisions sur les bases de la communication... La communication auprès des entreprises...

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Cours d Algorithmique et de Langage C v 3.0

Exonet : sauvegarde automatisée d une base de données

Apprendre Java en 154 minutes

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Généralités sur le Langage Java et éléments syntaxiques.

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Classes et Objets en Ocaml.

Principes des langages de programmation INF 321. Eric Goubault

Algorithmique et programmation : les bases (VBA) Corrigé

Utilisation d objets : String et ArrayList

Le prototype de la fonction main()

INITIATION A LA PROGRAMMATION

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

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

Corrigés des premiers exercices sur les classes

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

Cours 14 Les fichiers

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Editer un script de configuration automatique du proxy

Tp 1 correction. Structures de données (IF2)

Auto-évaluation Programmation en Java

1 Recherche en table par balayage

V- Manipulations de nombres en binaire

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

Les classes en Python

Transcription:

Initiation à la programmation avec Python Cours n 2 Sommaire du cours n 2 Syntaxe générale de la conditionnelle (if-elif-else) Notion n 5 : structures de données Notion n 6 : itérations ou boucles sans condition de sortie (for) Notion n 7 : sous-programmes (fonctions) Copyright (C) 2015 Jean-Vincent Loddo Licence Creative Commons Paternité Partage à l Identique 3.0 non transposé. 2 Syntaxe générale de la conditionnelle Syntaxe générale de la conditionnelle Exemple (1) : Syntaxe générale : if EXPR 1 : ACTIONS 1 elif EXPR 2 : ACTIONS 2 elif EXPR 3 : ACTIONS 3 ACTIONS n Expressions booléennes d'aiguillage : True => aller à la partie «alors» suivante False => aller à la partie «sinon-si» (elif) ou «sinon» (else) suivante Remarque n.1 : toutes les parties «elif» et la partie «else» sont optionnelles Remarque n.2 : au plus une des ACTIONS après les parties «then» ou «else» sera exécutée X = raw_input("quel âge avez vous?") AGE = int(x) if (AGE<=2): print("vous êtes un bébé") elif (AGE<=11): print("vous êtes un enfant") elif (AGE<18): print("vous êtes un adolescent") print("vous êtes un adulte") 3 4

Syntaxe générale de la conditionnelle Exemple (2) : X = raw_input("quel âge avez vous?") AGE = int(x) Notion n 5 : structures de données (1) La plupart des types de base (int, float, bool) ne sont pas structurés les valeurs sont simples, c'est-à-dire : 7 3.14 if (AGE<=2): EXPR 1 print("vous êtes un bébé") ACTIONS 1 ils n'ont pas de structure interne, c'est-à-dire : ils ne contiennent pas de sous-informations, c'est-à-dire : True elif (AGE<=11): EXPR 2 ils ne sont pas décomposables en plusieurs parties print("vous êtes un enfant") ACTIONS 2 En revanche, le type de base string est structuré elif (AGE<18): EXPR 3 une chaîne de caractère est composée d'une séquence finie de caractères print("vous êtes un adolescent") ACTIONS 3 les «parties» de la chaîne "Hello" sont les caractères 'H' 'e' 'l' 'l' 'o' il y a structure, chaque caractère étant un composant de la chaîne print("vous êtes un adulte") ACTIONS 4 5 H e l l o 6 Notion n 5 : structures de données (2) Le type de base string est structuré Notion n 5 : structures de données (3) Les listes (type list) sont des séquences finies de valeurs une chaîne de caractère est composée d'une séquence finie de caractères les «parties» de la chaîne "Hello" sont les caractères 'H' 'e' 'l' 'l' 'o' La structure est similaire aux chaînes de caractères : il peut y avoir un 1 er élément, un 2 ème, un 3 ème, ainsi de suite il y a structure, chaque caractère étant un composant de la chaîne 0 1 2 3 4 H e l l o on peut donc extraire un composant (une sous-information) : NOM = "Nicolas" INITIALE = NOM[0] print "La lettre initiale de",nom,"est",initiale Ce programme affiche : La lettre initiale de Nicolas est N 0 1 2 3 4 5 6 N i c o l a s 7 En Python, on les exprime avec des crochets et on les sépare avec des virgules. [1, 3, 5, 7, 9] ["chien", "chat", "loup", "tigre"] [1.16, 3.14, 5.721] [ True, True, False, False ] on peut voir les listes (list) comme une généralisation des chaînes de caractères (string) Au lieu de contenir seulement des caractères, une liste peut contenir tout type de valeurs (même des listes bien sûr!) Une liste a vocation à contenir des valeurs du même type (listes homogènes), mais en Python il n'est pas interdit d'avoir des listes hétérogènes, comme par 8 exemple : [1, "chien", 1.16, True ]

Notion n 5 : structures de données (4) ANIMAUX = ["chien", "chat", "loup", "tigre"] DOMESTIQUE = [ True, True, False, False ] 0 1 2 3 "chien" "chat" "loup" "tigre" print "Le",ANIMAUX[0],"est le meilleur ami de l'homme" print "Le",ANIMAUX[2],"est le meilleur ami du Petit Chaperon rouge" i = int(raw_input "Entrez un index entre 0 et 3 : ") if DOMESTIQUE[i]: print "Le",ANIMAUX[i],"est un animal domestique" print "Le",ANIMAUX[i],"est un animal sauvage" 9 Notion n 5 : structures de données (5) La fonction range permet de créer des listes d'entiers Très utiles pour construire des traitements en boucle (for) range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(4,10) [4, 5, 6, 7, 8, 9] range(4,10,2) Usage : [4, 6, 8] range(stop) range(start, stop [, step]) 10 Notion n 5 : structures de données (5) La fonction range permet de créer des listes d'entiers Très utiles pour construire des traitements en boucle (for) range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(4,10) [4, 5, 6, 7, 8, 9] range(4,10,2) [4, 6, 8] Usage de la fonction : range(stop) range(start, stop [, step]) step stop start stop Remarque : l'entier stop n'est pas inclus dans la liste 11 Notion n 5 : structures de données (6) En Python les listes sont modifiables, ce qui signifie qu'une fois construites : on peut les rallonger, c'est-à-dire rajouter des éléments on peut les raccourcir, c'est-à-dire éliminer des éléments on peut aussi modifier un composant quelconque, par l'affectation : LISTE = ["chien", "chat", "loup", "tigre"] LISTE[2] = "renard" print LISTE Ce programme affiche : ["chien", "chat", "renard", "tigre"] 12

Notion n 6 : itérations ou boucles sans condition de sortie (for) (1) On doit répéter la même action plusieurs fois Pas tout à fait la même action, mais à quelque chose près Exemple : vous voulez afficher des noms de fichiers JPEG correspondants à plusieurs animaux : ANIMAUX/chien.jpg ANIMAUX/chat.jpg ANIMAUX/loup.jpg Vous pouvez faire (méthode brute, problématique si la liste s'allonge) : print "ANIMAUX/chien.jpg" print "ANIMAUX/chat.jpg" print "ANIMAUX/loup.jpg" Vous pouvez faire (méthode rusée) : for X in ["chien", "chat", "loup"]: print "ANIMAUX/%s.jpg" % X (dans un 1 er temps) chien (dans un 2 ème temps) chat (dans un 3 ème temps) loup Notion n 6 : itérations ou boucles sans condition de sortie (for) (2) Exemple de l'appel en classe : pour chaque case dans la liste d'émargement, le prof super cool répète mécaniquement les instructions suivantes : Lire le nom écrit dans la case actuelle Prononcer le nom Écouter l'éventuelle réponse Cocher la case «Présent» si réponse, sinon cocher la case «Absent» correspondante Action répétée pour toutes les lignes de la feuille d'émargement Bobo Coco Lolo Mimi (dans des temps différents) Toto Zaza Action (print) répétée 3 fois (pour chacune des valeurs prises tour à tour par X) 13 14 Notion n 6 : itérations ou boucles sans condition de sortie (for) (3) Exemple de l'appel en classe en Python maintenant : Notion n 6 : itérations ou boucles sans condition de sortie (for) (4) Exemple de l'appel en classe en Python maintenant : ETUDIANTS = ["Bobo", "Coco", "Lolo", "Mimi", "Toto", "Zaza"] 0 1 2 3 4 5 PRESENT = [False, False, False, False, False, False ] for LIGNE in range(6): X = ETUDIANTS[LIGNE] # lire le nom print X # prononcer le nom REP = raw_input("présent?") # écouter la réponse if (REP == "oui"): PRESENT[LIGNE] = True # cocher présent PRESENT[LIGNE] = False # cocher absent ETUDIANTS = ["Bobo", "Coco", "Lolo", "Mimi", "Toto", "Zaza"] 0 1 2 3 4 5 PRESENT = [False, False, False, False, False, False ] for LIGNE in range(6): X = ETUDIANTS[LIGNE] print X REP = raw_input("présent?") if (REP == "oui"): PRESENT[LIGNE] = True PRESENT[LIGNE] = False Bobo Coco Lolo Mimi (dans des temps différents) Toto Zaza Action répétée pour les six lignes (de 0 à 5) de la feuille d'émargement 15 Action répétée pour les six lignes (de 0 à 5) de la feuille d'émargement 16

Notion n 6 : itérations ou boucles sans condition de sortie (for) (5) Syntaxe : for VARIABLE in EXPR: ACTIONS D'autres langages appellent cette construction «foreach» Exemple avec des chaînes de caractères (au lieu d'une liste) : for CARACTERE in "0123456789ABCDEF" print CARACTERE Expression de valeur structuré énumérable (string, list, ) Notion n 7 : paramétrisation (des programmes ou sous-programmes) (1) Les programmes interactifs sont intéressants pour l'utilisateur : JPG=$(zenity -file-selection --text="choisissez un fichier jpeg") convertisseur.py ${JPG} -resize 50% ${JPG%.jpg}.png mais il n'y a que lui qui peut en faire appel, puisque il n'y a que lui pour répondre interactivement aux questions posées (clavier, souris,) C'est bien aussi qu'un robot (programme) puisse faire appel à un autre robot (sous-programme) déjà construit C'est un principe de sous-traitance des services à rendre, qui facilite la tâche du programmeur Action répétée pour les 16 caractères de la chaîne (caractères hexadécimaux) 17 18 Notion n 7 : paramétrisation (des programmes ou sous-programmes) (2) Pour que les (sous-)programmes puissent se faire appel, on utilise les paramètres d'appel : Tous les (sous-)programmes ont une sorte de «casier» où on peut déposer des informations (valeurs) utiles au service qu'ils doivent rendre De cette façon, ils ne doivent pas poser de question (interagir) : les informations sont dès le départ dans le casier des paramètres N'importe qui (utilisateur ou autre programme) peut faire appel à leur service en remplissant le casier avec les bonnes informations ; c'est en réalité un principe que vous connaissez très bien, puisque vous l'utilisez : Notion n 7 : paramétrisation (des programmes ou sous-programmes) (3) Comment le développeur Python peut manipuler les valeurs déposées dans le casier du programme par l'appelant (utilisateur ou autre programme)? Le casier est simplement une liste, dont le nom est sys.argv (liste argv du module sys) sys.argv[0] sys.argv casier 1 2 3 4 convertisseur.py rose.jpg -resize 50% rose.png Vous faites appel au programme convertisseur.py en remplissant son casier : Dans la case n 1 du casier vous mettez la valeur "rose.jpg" Dans la case n 2 du casier vous mettez la valeur "-resize" convertisseur.py rose.jpg -resize 50% rose.png Le développeur peut donc accéder à ces informations (qu'il ne connaît pas mais ce n'est pas un problème) par sys.argv[1] sys.argv[2] sys.argv[3] Dans la case n 3 du casier vous mettez la valeur "50%" 19 20 Dans la case n 4 du casier vous mettez la valeur "rose.png"

Notion n 7 : paramétrisation (des programmes ou sous-programmes) (4) Grâce aux paramètres un programme peut faire appel à d'autres programmes (déjà construits) pour rendre son service, dans une logique de sous-traitance Notion n 7 : Sous-programmes internes (fonctions) - Introduction (1) Grâce aux paramètres un programme peut faire appel à d'autres programmes (déjà construits) pour rendre son service, dans une logique de sous-traitance Terminologie : les paramètres traités par le développeur (sys.argv) sont appelés paramètres (ou arguments) formels Or, il est possible mais n'est pas nécessaire que ces sous-traitants soient des programmes (fichiers exécutables) indépendants Il est bien plus courant de définir des sous-programmes à l'intérieur du programme lui même (dans le même fichier exécutable) Les valeurs utilisées à l'appel (rose.jpg, -resize, ) sont appelés paramètres (ou arguments) actuels 21 22 Notion n 7 : Sous-programmes internes (fonctions) - Introduction (2) Les fonctions sont des sous-programmes définissables à l'intérieur du programme lui même. En Python : Syntaxe de définition (abstraction) : def NOM (ARG 1,,ARG n ): ACTIONS Adresse des images utilisées Boite fermée https://openclipart.org/detail/15872/closed-box-by-mcol Robot sympa https://openclipart.org/detail/170101/cartoon-robot-by-sirrob01 Développeur https://openclipart.org/detail/37129/personnage_ordinateur-by-antoine Utilisateur https://openclipart.org/detail/37135/personnage_ordinateur-by-antoine-37135 où dans ACTIONS pourra se trouver une occurrence ou plus de l'instruction return(expr) pour renvoyer (à l'appellant) la valeur représentée par EXPR def double(x): return(x*2) def dix_fois(y): return(y*10) Syntaxe d'appel (application) : à la place de toute EXPR on pourra écrire : NOM (EXPR 1,,EXPR n ) Exemple : print "Le double de %d est %d" % (7, double(7)) 23 24