INF1035: Informatique pour les sciences: programmation,
simulation et exploitation de donnes
Cour 2: Introduction la programmation Python Automne 2014 Bruno Daigle Informatique pour les sciences Diallo & Daigle
INF1035: Informatique pour les sciences valuation 2 TP Examen Intra Examen Final
Entente dvaluation 2 Informatique pour les sciences Diallo & Daigle
INF1035: Informatique pour les sciences Rappel Historique de la programmation Architecture des ordinateurs et processeurs Caractristique des langages de programmation Python simple 3 Introduction la programmation Python: Diallo & Daigle
INF1035: Informatique pour les sciences Sommaire Rsolution de problmes, algorithmes Programmation Python Types de donnes de base Dfinition de variables Oprateurs arithmtiques, relationnels, logiques Lecture de valeur au clavier Affichage 4 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Problme - Algorithme - Programme Problme
Algorithme
Programme
Solution
5 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Problme Calculez la moyenne de trois distances. Avant de programmer: Entte de lalgorithme Corps de lalgorithme Ne pas oublier la partie informelle : Contrat Rles des donnes et des rsultats Et autres commentaires
6 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Algorithme
Commentaires // L'algorithme calculMoy3 permet de calculer la // moyenne de trois distances //Donnes : d1,d2 et d3 sont les trois distances //Rsultat : moy est la moyenne des trois distances //Contrat : d1,d2 et d3 sont suprieures ou gales 0
Entte
Corps
(moy) calculMoy3(d1,d2,d3)
DEBUT moy = (d1+d2+d3)/3 //formule de la moyenne FIN
7 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Programme Supposons les trois distances: 10, 15 et 29 On peut faire:
(10 + 15 + 29)/ 3
Pas trs gnral on peut faire un peu mieux: n1 = 10 n2 = 15 n3 = 29 moyenne = (n1 + n2 + n3)/ 3
Finalement un programme plus gnral : 8 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Programme # moyenne de trois nombres entiers saisis au clavier
#Saisie des informations c1 = input("Entrez le premier nombre: ") n1 = int(c1) c2 = input("Entrez le deuxieme nombre: ") n2 = int(c2) c3 = input("Entrez le troisieme nombre: ") n3 = int(c3)
#traitement moyenne = (n1 + n2 + n3) / 3
#Sortie et affichage print("la moyenne est: ", moyenne)
9 Rsolution de problmes Diallo & Daigle
INF1035: Informatique pour les sciences Problmes plus complexes Faire la paye des employs de la compagnie Algorithme : coordonnes des employs heures travailles comptes bancaires conventions collectives temps supplmentaire etc. On ne peut pas programmer sans algorithme 10 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Premier programme (excution) Dans linterface python Taper le code directement dans la console
Excution en ligne de commande Crer un fichier .py <premier.py> appeler la commande: python premier.py 11 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Excution squentielle partir de la premire ligne, on passe successivement aux lignes suivantes (sauf indication contraire). Pas de mise jour automatique des variables. Tout doit tre programm.
INF1035: Informatique pour les sciences Types de base en python Les entiers (3 -3 5 -1000000) Les rels (3.0 0.5) Les textes ou chanes de caractres (abcd) Les boolens (True False) On verra aussi plus tard: Les listes ou tableaux Les dictionnaires Les fichiers 13 Types de donnes Diallo & Daigle
INF1035: Informatique pour les sciences Types entiers Valeurs 3 10 -15 300000005
Lecture nTexte = input("Entrez un entier: ") n = int(nTexte)
Affichage n = 4237 print(n) 4237 print("n est ",n) n est 4237 14 Types de donnes Diallo & Daigle
INF1035: Informatique pour les sciences Type rels Valeurs 3.0 -10.51 -15 3.3e5 4.5e-5
Lecture nTexte = input() n = float(nTexte)
Afficher n = 3.55 print(n) 3.55 print("{0:.3e}".format(n)) 3.550e+00 15 Types de donnes Diallo & Daigle
INF1035: Informatique pour les sciences Type texte
Dans dautre langage il y a le type char et ses valeurs sont notes entre deux apostrophes. En python ce type nexiste pas 'A' 'a' 'e', les chiffres '1' '0', la pontuation ';' '] Caractres spciaux '\n' '\'' apostrophe
Un texte est une combinaison de plusieurs caractres 'abababa' '\tabababab\ntototo\ntata
Attention On peut aussi faire "ablababa" '0' est diffrent de 0
16 Types de donnes Diallo & Daigle
INF1035: Informatique pour les sciences Type boolen
Valeurs : False et True Cest la valeur utilise dans les conditions boolennes. 17 Types de donnes Diallo & Daigle
INF1035: Informatique pour les sciences Constante ou litral
2 2.0 '2' 18 Dfinition de variables Diallo & Daigle
INF1035: Informatique pour les sciences Variables
Une variable est une entit qui permet de stocker une valeur dans un programme.
Du point de vue d'un programmeur, une variable a trois composantes: un type et un nom et une valeur Le type est l'un des types de base, ou l'un des types prdfinis dans Python, ou bien un type prdfini par l'utilisateur (seront vus ultrieurement) Le nom d'une variable est un identificateur La valeur devrait tre compatible avec le type 19 Dfinition de variables Diallo & Daigle
INF1035: Informatique pour les sciences Identificateurs
Les identificateurs nomment les objets dans un programme python comme les variables, les fonctions,...
C'est une suite de lettres ou de chiffres o le premier caractre est obligatoirement une lettre parmi A Z, a z ou bien le caractre _ (soulign) Python distingue les minuscules des majuscules. Exemple: canadiens, Canadiens, CanAdiens , CANADIENS et _CANADIENS sont des identificateurs valides et tous diffrents.
La longueur de l'identificateur dpend de l'implmentation (30 caractres seraient un maximum raisonnable). 20 Dfinition de variables Diallo & Daigle
INF1035: Informatique pour les sciences Indentificateurs
Un identificateur doit tre diffrent des mots cls (keywords) du langage python
Le choix d'un nom significatif est important pour renseigner le programmeur sur le contenu et le rle de la variable. Donc pour la lisibilit du programme. salaire, salaire_net, salaireNet Plutt que: t, a, z22
21 Dfinition de variables Diallo & Daigle
INF1035: Informatique pour les sciences Les mots cl en python
and def finally in print() yield as del for is raise False assert elif from lambda return None break else global not try True class except if or while nonlocal continue exec() import pass with 22 Dfinition de variables Diallo & Daigle
INF1035: Informatique pour les sciences Typage dynamique, Affectation et initialisation
Dans python une variable est dfinie implicitement sa premire utilisation Format de la dfinition d'une variable <NomVariable> = <valeur initiale> <NomVariable> est un identificateur taxe = 5 salaire = 5.0 age = int("25") 23 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Les oprateurs
Les oprateurs arithmtiques Les oprateurs relationnels ou de comparaison Les oprateurs logiques Et aussi : cast (conversion force)
24 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques
n=7 p=4 q=n/p #la valeur de q est 1 .75 q=n//p #la valeur de q est 1 car n//p retourne 1 q=n%p # la valeur de q est 3 % retourne le reste de la division euclidienne n par p
25 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques
Oprateurs arithmtiques Type + - * ** / % -(ngation) int + - * ** / -(ngation) float n + p int int n, p= 3,4 L'addition +, la soustraction -, la multiplication * de type int respectivement de type float retournent une valeur de type int respectivement de type float. La division // est de type int et / est de type float
Exemple ( n=3; p=4) n + p retourne 7 n - p retourne -1 n * p retourne 12 n / p retourne 0.75 -n retourne -3 n // p retourne 0
26 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques (Conversion implicite)
Sens de conversion implicite (promotion) int -> float float + int float float float Dduction du type de l'oprateur Conversion implicite de int en float n x n=3 x=3.2 27 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques (Conversion implicite) Si un oprateur binaire a deux oprandes de types diffrents, le type plus petit des deux sera promu au type de l'autre Toutes les constantes dans Python ont un type 2 de type int et 2.0 de type float Toute expression a un type qui est dtermin en valuant l'expression 1 + 2.0 est de type float
28 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques (Conversion explicite, cast() ) En indiquant entre type() le type dsir pour une expression donn Peut donner lieu une perte d'information Exemple x = -3.5 n = int (x-2) # n gal -5 x = n//2 # x gale -2 x = float(n) / 2 #x gale -2.5
L'utilisation du cast montre au compilateur que la perte d'information est intentionnelle.
29 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Arithmtiques Les oprateurs ont une priorit *, / et % sont plus prioritaire que + et a + b / c est valu par a + (b / c) valuation de la gauche vers la droite a+b+c est valu (a+b)+c Placez les parenthses manquantes en utilisant les priorits entre les oprateurs et leur associativit. Exemple: a+b/c*d+3-a+b # sera: (((a+((b/c)*d))+3)-a)+b
30 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Relationnels Lvaluation de lexpression retourne toujours False ou True
galit ou operateur dingalit Exemple de condition en Python signification de la condition
== x == y x est gal y != x != y x nest pas gal y > x > y x est strict sup y < x < y x est strict inf y >= x >= y x est sup ou gal y <= x <= y x est inf ou gal y
31 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Relationnels (Exemples) 3 == 2+1 # retourne True
INF1035: Informatique pour les sciences Logiques Les oprateurs logiques s'appliquent des expressions du type boolen et retournent une valeur boolenne Trois oprateurs logiques and reprsente et or reprsente ou not reprsente non Leurs valeurs de retour (leur valuation) and retourne True si les deux expressions boolennes sont True et False sinon or retourne False si les deux expressions boolennes sont False et True sinon not retourne True si l'expression boolenne est True et False sinon
33 Oprateurs Diallo & Daigle
INF1035: Informatique pour les sciences Logiques and True and True #True (1 == 1) and (2 == 1) # False or True or False #True (1 == 0) or (2 == 1) # False not not False #True not (1 != 0) # False
34 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Lecture au clavier
xTexte = input("Entrez un entier: ") xEntier = int(xTexte)
Ou encore :
xEntier = int(input("Entrez un entier: "))
Lors de la conversion des types numriques les caractres blancs(espace, Tabulation, retour la ligne, etc) sont ignors
Ce n'est pas le cas lors de la lecture du type texte.
On pourra valider le texte avant conversion (vu plus tard)
35 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Affichage lcran (terminal) Mot cl de python : print() (ou print dans les versions 2 et antrieures)
n = 5 K = 12.0 print (n) # 5 print(n,k) # (5,12.0)
Message en utilisant un texte print(" La valeur de n est", n)
36 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Affichage lcran (terminal) print ("n est gal : " ) print (n) n est gal : 5 Mise en forme plus labore print("n est gal : {0}".format(n)) n est gal : 5
print("n est gal {0} et k est {1}".format(n,k)) n est gal 5 et k est 12.0 Plus de dtails plus tard
Sur 2 lignes 37 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Exercices 1. Ecrire un programme qui convertit en une note sur 100 une note note sur 15. 2. On suppose quun examen est not sur une note donne maximale. Ecrivez un programme qui convertit une note de cet examen en une note sur 100. 3. Ecrire un programme qui calcule la distance euclidienne entre deux points donns par leurs coordonnes coordonnes NB: les donnes proviendront du clavier
38 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences Points cls Algorithmes Les types Les variables valuation des expressions Conversion implicite / explicite Priorit entre oprateurs Lecture et affichage 39 Programmation Python Diallo & Daigle
INF1035: Informatique pour les sciences venir Laboratoire ce jeudi Prochain cours: les slections Comment adapter le droulement dun programme aux diffrentes conditions dentres