CQP 112 Introduc/on à la programma/on Thème 3 : Programma/on Python Département d informa/que CQP 112 : Introduc/on à la programma/on
Plan 1. Structure d un programme 2. Entête 3. Inclusion de codes existants 4. Composants du code 5. Défini/on de fonc/ons
Langage Python q Guido Van Rossum (1989) q Dynamiquement typé : types découverts à l exécu/on q Fortement typé : : traitements dis/ncts suivant le type q Orienté objet : basé sur des défini/ons d objets et d instances de ces objets q Modulaire : composé de blocs
q Suite d instruc/ons Bloc q débutant par une ligne d instruc/on terminée par : q avec les lignes suivantes décalées par rapport à la première ligne. n = 10 somme_pairs = 0 somme_impairs = 0 while(n > 0): if(n % 2 == 0): somme_pairs = somme_pairs + n else: somme_impairs = somme_impairs + n n = n- 1
q Suite d instruc/ons Bloc q débutant par une ligne d instruc/on terminée par : q avec les lignes suivantes décalées par rapport à la première ligne. n = 10 somme_pairs = 0 somme_impairs = 0 while(n > 0): if(n % 2 == 0): somme_pairs = somme_pairs + n else: somme_impairs = somme_impairs + n n = n- 1
Structure d un programme Python q Entête q Direc/ves pour l interpréta/on q Descrip/on du programme q Inclusion de codes existants q Bibliothèques prédéfinies q Programmes existants q Votre code q Liste d instruc/ons
#!/usr/bin/env python # -*- coding: utf-8 -*- ## Affichage print "Le cosinus de l'angle est", cosinus """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné en degrés. Entête Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 Codes existants """ from math import * ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 Votre code ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE ## Calcul du cosinus cosinus = cos(angle_en_radians)
Plan 1. Structure d un programme 2. Entête 3. Inclusion de codes existants 4. Composants du code 5. Défini/on de fonc/ons
Entête q Instruc/ons pour l interpréta/on q Descrip/on du programme (en commentaire) q Nom q Descrip/on q Auteur(e)(s) q Date #!/usr/bin/env python # -*- coding: utf-8 -*- """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 """
#!/usr/bin/env python # - *- coding: uj- 8 - *- Entêtes """ ``calcul_cosinus`` **module descrip/on** Ce module calcule le cosinus d'un angle donné en degrés. Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sor/es : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 """
#!/usr/bin/env python # - *- coding: uj- 8 - *- Entêtes """ ``calcul_cosinus`` **module descrip/on** Ce module calcule le cosinus d'un angle donné en degrés. Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sor/es : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 """ Résultat de l analyse du problème
Entêtes q Commentaires q Lignes non lue par l interprétateur q Très important dans un programme q Facilite la lecture et la maintenance q U/lisés pour la généra/on de la documenta/on q Lignes suivant le symbole # q Lignes placées entre """ et """ q Exemple # Calcul du cosinus cosinus = cos(angle_en_radians)
#!/usr/bin/env python # -*- coding: utf-8 -*- ## Affichage print "Le cosinus de l'angle est", cosinus """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné en degrés. Entêtes Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 Codes existants """ from math import * ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 Votre code ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE ## Calcul du cosinus cosinus = cos(angle_en_radians)
Plan 1. Structure d un programme 2. Entêtes 3. Inclusion de codes existants 4. Composants du code 5. Défini/on de fonc/ons
Inclusion de codes existants q Direc/ves à l interprétateur q Inclusion de bibliothèques pré- définies Exemples : string, math, os.path, string, q Inclusion d autres programmes q Syntaxe from <nom_bibliothèque> import * q Exemple from math import * from nom_fichier import * (ne pas ajouter l extension.py du fichier) Contenu de la bibliothèque math : htps://docs.python.org/2/library/math.html
#!/usr/bin/env python # -*- coding: utf-8 -*- ## Affichage print "Le cosinus de l'angle est", cosinus """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné en degrés. Entêtes Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 Codes existants """ from math import * ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 Votre code ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE ## Calcul du cosinus cosinus = cos(angle_en_radians)
Plan 1. Squelete d un programme 2. Entêtes 3. Inclusion de codes existants 4. Composants du code 5. Défini/on de fonc/ons
Composants du code q Déclara/on des constantes q Déclara/on des variables q Déclara/on des fonc/ons q Blocs d instruc/ons ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
Composants du code q Déclara/on des constantes q Déclara/on des variables q Déclara/on des fonc/ons q Blocs d instruc/ons ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 Pas obligatoire ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
Composants du code q DéclaraLon des constantes q DéclaraLon des variables q Déclara/on des fonc/ons q Blocs d instruc/ons ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
DéclaraLon des constantes et variables q U/lise l affec/on qui permet de donner une valeur à un objet (constante ou variable) q Un objet est associé à un nom (noms donnés aux données en mémoire): q composé de letres (a- z) (A- Z), chiffres (0-9) et «_» q commence par une letre q ne con/ent de caractère réservé (*, +, $,., (, ), #,!, %, ;, :, ) Pas obligatoire en python ; mais dans les normes de programma/on.
DéclaraLon des constantes q Permet de donner des noms aux données qui ne doivent pas être modifiées : Constantes q Noms des constantes doivent être significa/fs q commencent par une letre q en majuscule (norme de programma/on) Exemples : NBRE_RADIANS_DANS_DEGRE, NBRE_SECONDES_DANS_HEURE q Syntaxe : suite d instruc/ons d affecta/on NBRE_RADIANS_DANS_DEGRÉ = 3.1415 / 180 NBRE_SECONDES_DANS_HEURE = 3600
DéclaraLons des variables q Permet de donner des noms aux données en mémoire q Noms des variables doivent être significa/fs q débutant par letre minuscule (norme de programma/on) Exemples : angle_en_degres, rayon, largeur, longueur q Syntaxe : suite d instruc/ons d affecta/on nbre_de_secondes = 100 prenom = "Lucy" angle_en_degres = 0.0 largeur = 0 longueur = 0
Composants du code q Déclara/on des constantes q Déclara/on des variables q Déclara/on des fonc/ons q Blocs d instruclons ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
Composants du code q Types de lignes q Commentaires q Instruc/ons q Types d instruc/on q Non- condi/onnelle q Affecta/on q Appel de fonc/on q Condi/onnelle ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
Composants du code q Types de lignes q Commentaires q Instruc/ons q Types d instruc/on q Non- condilonnelle q Affecta/on q Appel de fonc/on q Condi/onnelle ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEG ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
InstrucLon d affectalon q Permet de modifier la valeur d une variable q Valeur d une variable modifiable tout au long du code q Syntaxe nom_variable = <expression> q Expression peut être : q variable q valeur (exemple : 2 ou 1.05 ou "bonjour") q expression mathéma/que valide (exemple : (2 + 3) * 5 ; appel de fonc/on sur un jeu d entrée donné) q Exemples : x = y x = (2 + x) * (y - 5) angle = 0.0 cosinus = cos(angle) Fonc/on déclarée ou incluse à par/r de codes existants
Cas parlculier : lecture au clavier et affectalon q Permet d affecter à une variable une valeur lue au clavier q Syntaxe nom_variable = input(<message>) ou nom_variable = raw_input(<message>) q Message est : q le message d instruc/on qui s affiche à l écran q exemple : "Tapez votre prénom" ou "Entrez un angle" q Exemples : prenom = input("tapez votre prénom") angle = input("entrez un angle")
InstrucLon d appel de fonclon (sans affectalon) q Permet d exécuter une fonc/on sur un jeu d entrée donné q Syntaxe nom_fonc/on (<expression1>, <expression2>, ) q Exemples: afficher_intervalle(a,b) Fonc/on déclarée ou incluse à par/r de codes existants
Cas parlculier : instruclon d affichage q Permet d afficher une valeur à l écran q Syntaxe print <expression1>, <expression2>, q Exemples (a = 1, x = 2, y = 3, angle = 0, cosinus = 1): print "La somme de x et y est", x + y print "La valeur de la variable a est", a print "Le cosinus de l angle", angle, "est", cosinus print "Le produit de 2+2 et", 3, "est (2+2)*3"
#!/usr/bin/env python # -*- coding: utf-8 -*- ## Affichage print "Le cosinus de l'angle est", cosinus """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné en degrés. Entêtes Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015 Codes existants """ from math import * ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 Votre code ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE ## Calcul du cosinus cosinus = cos(angle_en_radians)
""" #!/usr/bin/env python # -*- coding: utf-8 -*- """ ``calcul_cosinus`` **module description** Ce module calcule le cosinus d'un angle donné en degrés. Entrées : (clavier) angle_en_degres : réel angle donné en degrés Sorties : (clavier) cosinus : réel cosinus de l'angle...moduleauthor:: Aïda Ouangraoua Janvier 2015
""" from math import * ## Déclaration des variables angle_en_degres = 0.0 angle_en_radians = 0.0 cosinus = 0.0 ## Déclaration des constantes NBRE_RADIANS_DANS_DEGRE = pi/180 ## Lecture des entrées angle = input("entrez un angle en degrés:\n") angle_en_degres = input( Entrez un angle en degrés:\n ) ## Conversion de l'angle en radians angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE ## Calcul du cosinus cosinus = cos(angle_en_radians) ## Affichage print "Le cosinus de l'angle est", cosinus
#!/usr/bin/env python # -*- coding: utf-8 -*- ## Affichage print "La circonference du rectangle est", circonference print "La superficie du rectangle est", superficie """ ``calcul_circonference_rectangle`` **module description** Ce module calcule la circonférence et la superficie d'un rectangle longueur données. Entêtes Entrées : (clavier) largeur : entier largeur donné en cm (clavier) longueur : entier longueur donné en cm Codes existants Sorties : (écran) circonférence : entier circonférence en cm (écran) superficie : entier superficie en cm^2...moduleauthor:: Aïda Ouangraoua Janvier 2015 """ ## Déclaration des variables largeur = 0 longueur = 0 circonference = 0 superficie = 0 Votre code ## Lecture des entrées largeur = input("entrez une largeur en cm:\n") longueur = input("entrez une longueur en cm:\n") ## Calcul de la circonference circonference = 2 * (largeur + longueur) ## Calcul de la superficie superficie = largeur * longueur
""" ## Déclaration des variables largeur = 0 longueur = 0 circonference = 0 superficie = 0 ## Lecture des entrées largeur = input("entrez une largeur en cm:\n") longueur = input("entrez une longueur en cm:\n") ## Calcul de la circonference circonference = 2 * (largeur + longueur) ## Calcul de la superficie superficie = largeur * longueur ## Affichage print "La circonference du rectangle est", circonference print "La superficie du rectangle est", superficie
#!/usr/bin/env python # -*- coding: utf-8 -*- """ ``calcul_superficie_cercle`` **module description** Ce module calcule la superficie d'un cercle de rayon Entêtes Entrées : (clavier) rayon : réel rayon donné en cm Sorties : (écran) surperficie : réel superficie du cercle en cm^2...moduleauthor:: Aïda Ouangraoua Janvier 2015 Codes existants Votre code """ from math import * ## Déclaration des variables rayon = 0.0 superficie = 0.0 ## Déclaration des constantes #pi = 3.1415 ## Lecture des entrées rayon = input("entrez le rayon du cercle:\n") ## Traitement superficie = pi * rayon**2 ## Affichage print "La superficie du cercle est", superficie
...moduleauthor:: Aïda Ouangraoua Janvier 2015 """ from math import * ## Déclaration des variables rayon = 0.0 superficie = 0.0 ## Déclaration des constantes #pi = 3.1415 ## Lecture des entrées rayon = input("entrez le rayon du cercle:\n") ## Traitement superficie = pi * rayon**2 ## Affichage print "La superficie du cercle est", superficie
Composants du code q Déclara/on des constantes q Déclara/on des variables q DéclaraLon des fonclons q Blocs d instruc/ons
Plan 1. Structure d un programme 2. Entêtes 3. Inclusion de codes existants 4. Composants du code 5. DéfiniLon de fonclons
DéfiniLon de fonclons q Fonc/on : objet à déclarer q Permet de résoudre un sous- problème du problème de base.
Indenta/on après : Obligatoire en Python DéfiniLon de fonclons q Syntaxe def <nomfonc/on>(<nom_param1>, <nom_param2>, ): instruc/ons de l algorithme.. [return <nomvariableretour>] q Exemple def calcul_circonference_rectangle(largeur,longueur): circonference = 2 * (largeur + longueur) return circonference
Indenta/on après : Obligatoire en Python DéfiniLon de fonclons q Autres exemples def afficher_texte (un_texte): print "Affichage du texte :", un_texte def calcul_cosinus(angle_en_degres) : angle_en_radians = 0.0 cosinus = 0.0 PI = 3.1415 NBRE_RADIANS_DANS_DEGRE = PI/180 angle_en_radians = angle_en_degres * NBRE_RADIANS_DANS_DEGRE cosinus = cos(angle_en_radians) return cosinus
Appel de fonclons q Calcul le résultat d une fonc/on pour des valeurs données q Syntaxe <nomvariable> = <nomfonc/on>(<expression1>, <expression2>, ) q Exemple larg = 4 long = 8 circ_4_8 = calcul_circonference_rectangle(larg,long)
Appel de fonclons q Calcul le résultat d une fonc/on pour des valeurs données q Syntaxe <nomvariable> = <nomfonc/on>(<expression1>, <expression2>, ) q Exemple larg = 4 long = 8 Possible si la défini/on de la fonc/on inclut une valeur retournée Nombres de données en entrée = Nombre de paramètres entrants définis pour la fonc/on circ_4_8 = calcul_circonference_rectangle(larg,long)
Exemples complets avec fonclons q Avec fonc/ons secondaires q calcul_cosinus_fonc/on.py q calcul_rectangle_fonc/on.py q calcul_cercle_fonc/on.py q Avec une fonc/on principale : main() q calcul_cosinus_fonc/on_main.py q calcul_rectangle_fonc/on_main.py q calcul_cercle_fonc/on_main.py
Exercices 1. Écrire un programme qui lit un nombre en base décimale <= 256, puis le conver/t et l affiche en base binaire (Note : 256 = 2 8 ). 2. Écrire un programme qui lit un nombre de secondes, puis le conver/t et l affiche en heures, minutes, secondes.