View
10
Download
1
Category
Preview:
Citation preview
CHAPITRE 3 :
PROGRAMMER AVEC
PYTHON
Informatique1 2014-2015 Faculté des Sciences
Semestre1 LMD ST
OBJECTIFS
Apprendre les concepts de base de l'algorithmique
et de la programmation.
Etre capable de mettre en œuvre ces concepts pour
analyser des problèmes simples et écrire les
programmes correspondants
14/12/2014
2
L’HISTOIRE DE PYTHON
1991 : Guido van Rossum, un programmeur
hollandais, publie la version 0.9 du langage Python.
1994 : version 1.0
2000 : version 2.0
2001 : la communauté des développeurs s'organise
=> Python Software Foundation (à but non
lucratif)
2008 : versions 3.0 et 2.6
2009 : versions 3.1 et 2.7
...
nov. 2014 : versions 3.4.2 et 2.7.8
la version 2 n'évolue plus => remplacée
progressivement par la version 3, celle que nous
étudierons
3
CARACTÉRISTIQUES DE PYTHON
Langage interprété (en partie compilé). L'interpréteur fonctionne en
2 modes :
Interactif (mode commande) : boucle REPL (Read-Evaluate-Print Loop)
=> [Lit→Évalue→Affiche] une commande à la fois
Programme (mode script) : exécute un programme écrit dans un
fichier .py
Développé sous licence Libre Open-Source. Disponible
gratuitement.
Multiplateforme : Un*x (GNU/Linux, MacOS X, *BSD...),
Windows, etc.
4
CARACTÉRISTIQUES DE PYTHON
Langage de programmation de haut niveau facile pour les
programmeurs débutants.
Puissant, permet plusieurs styles de programmation (paradigmes)
pour les programmeurs avancés : impératif, structuré,
procédural, fonctionnel, orienté objet, orienté aspect, etc.
Riche, fourni avec de nombreux modules ("batteries included") :
manipulation de texte, calcul numérique, gestion de fichiers,
bases de données, compression, cryptographie, gestion des
ressources système, réseau, internet, multimédia, interfaces
graphiques, outils de développement, etc.
5
MODE PROGRAMME
Le programme source Python est écrit dans un fichier texte
d'extension .py (utiliser un éditeur de texte).
L'interpréteur Python est démarré avec le fichier source en
paramètre :
L'interpréteur exécute tout le programme puis sort.
6
$ python3 monprogramme.py
MODE INTERACTIF
Démarrage de l'interpréteur (dans un terminal):
Boucle REPL (Read-Eval-Print) :
Caractères ">>>" : invite (prompt) => l'interpréteur attend une commande
La ligne tapée (suivie de 'Entrée') est évaluée (exécutée) immédiatement.
Le résultat de la commande (s'il y en a) est affiché
Recommence, jusqu'à la sortie de l'interpréteur (touches Ctrl+D ou commande
quit())
7
$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
MODE INTERACTIF
Pratique pour faire des essais, pour apprendre
Peut être utilisé comme une calculatrice : on tape des
expressions mathématiques qui sont immédiatement évaluées
pour afficher le résultat.
8
>>> 1295+42
1337
>>>
MODE INTERACTIF
Si la commande/l'expression n'est pas reconnue : erreur
9
>>> salut
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'salut' is not defined
>>> 3pi/2
File "<stdin>", line 1
3pi/2
^
SyntaxError: invalid syntax
>>>
TYPE DE DONNÉES
Python traite des données de plusieurs types. Les plus
simples sont :
Les nombres entiers, int (integer) : ex: -42 0 1337
270272161272290598050102250413
(pas de limite en Python, tant que la RAM est suffisante)
Les nombres réels, float (floating point numbers: nombres à
virgule flottante) : ex: 1.414 -133.7 2.5e-8 3e12
Les nombres complexes, complex : ex: 5 + 2j 2.4 + 9.7j
14/12/2014
10
TYPE DE DONNÉES
Les booléens, bool (boolean) : seulement 2 valeurs de données
logiques : True (qui signifie Vrai) et False (qui signifie Faux)
Les chaînes de caractères, str (string) : ex: "bonjour" ,
"A4 = 21 x 29,7 cm" , "12345 "
Il existe des types de données plus avancés, que nous
verrons par la suite.
14/12/2014
11
CONSTANTES LITTÉRALES
Une constante littérale est une notation qui représente une
valeur de type simple.
Une constante littérale est un nombre: 15, 10.25e-6,... ou
une chaine de caractères telle que: "C'est une chaine " ou
un booléen. On l'appelle :
Littérale car on utilise sa valeur telle qu'elle est.
constante car sa valeur ne change pas.
14/12/2014
12
CONSTANTES LITTÉRALES
Voici les règles d'écriture pour chaque type cité :
int :
un nombre entier est constitué d'un ou plusieurs chiffres et ne doit
pas commencer par un zéro (sauf pour la valeur 0)
il peut être écrit en binaire (base 2) en le faisant précéder par
0b, en octal (base 8) avec 0o ou en hexadécimal (base 16) avec
0x
Ex : 42 0o52 0b101010 0x2a ont la même valeur,
042 n'est pas un entier valide
14/12/2014
13
CONSTANTES LITTÉRALES
float :
Un nombre réel comporte obligatoirement soit une virgule
décimale sous forme d'un point (pas une virgule), soit un
symbole e signifiant "10 puissance...". Ex: 1.3 3e5 2.1e4
Il peut ne rien y avoir avant ou après le point : .42 égale
0.42 et 42.égale 42.0 mais ne sont pas du même type que
42 qui est un entier.
14/12/2014
14
CONSTANTES LITTÉRALES
Constantes littérales imaginaires :
Elles sont utilisées pour écrire la partie imaginaire des
nombres complexes. Si un nombre complexe a une partie
réelle, on additionne la partie imaginaire à un float
Elles sont constituées d'un nombre réel ou entier suivi de la
lettre j
Ex : 3.14j 10.j 10j .001j 1e100j 3.14e-10j
bool :
Les seules constantes littérales booléennes sont True (qui
signifie Vrai) et False (qui signifie Faux)
14/12/2014
15
CONSTANTES LITTÉRALES
str :
Une valeur chaine de caractères est représentée en l'entourant
soit avec des guillemets (") soit avec des apostrophes ('). Elle
est constituée de n'importe quels caractères (lettres, chiffres,
espaces, ponctuation...). Ex : "bonjour" 'Salut "tonton" <3 !'
Pour représenter certains caractères, on doit souvent utiliser
une des séquences d'échappement telles que :
\' pour le caractère '
\" pour le caractère "
\n pour un retour à la ligne
\t pour une tabulation
\\ pour le caractère \
14/12/2014
16
NOTION DE VARIABLE
Les valeurs sont par défaut anonymes et volatiles : une
fois utilisée, une valeur disparait du programme.
Problème : C'est bien de savoir faire des opérations
mais, si on ne peut pas stocker le résultat quelque
part, cela devient très vite ennuyeux.
Solution : utiliser des variables.
14/12/2014
17
NOTION DE VARIABLE
C’est quoi, une variable ?
Une variable est un emplacement
dans la mémoire centrale (une
"case") qui est utilisé pour stocker une
donnée.
Une variable a un nom qui lui est
associé. C'est son identificateur.
On peut l'assimiler à un tiroir qui
porte une étiquette avec un nom.
Le contenu d'une variable peut
changer
14/12/2014
18
NOTION DE CONSTANTE
C’est quoi, une constante ?
Dans d'autres langages, certains emplacements mémoires
stockent des constantes, qui contrairement aux variables
ne peuvent pas changer.
En Python, il n'y a pas vraiment de constantes. Mais le
programmeur peut décider d'utiliser certaines variables
comme constantes et de ne pas les changer.
14/12/2014
19
NOMS DE VARIABLES
Identificateurs
En Python, un identificateur est un nom constitué de lettres
(minuscules et majuscules) , de tirets bas (_) et/ou de chiffres,
sauf pour le premier caractère qui ne doit pas être un chiffre.
Ex. : prix, car13, _oeuf , 3pom.
Les caractères spéciaux autres que le _ sont interdits (#,@, &,
$...).
Python est « sensible à la casse » : il fait la différence entre les
minuscules et les majuscules. Ex : age, AGE, aGe, Age sont 4
identificateurs différents.
Certains mots sont réservés (mots-clés du langage) et ne peuvent
pas être utilisés comme identificateurs (cf. diapo suivante)
20
NOMS DE VARIABLES
Les 33 mots-clés réservés
14/12/2014
21
and del from None True
as elif global nonlocal try
assert else if not while
break except import or with
class False in pass yield
continue finally is raise
def for lambda return
NOMS DE VARIABLES
Conventions de nommage
En plus des règles obligatoires, il existe des règles pour
lesquelles les programmeurs Python se sont mis d'accord :
Utiliser des noms significatifs. Au lieu de a, b, c, et d, préférer
prix_unitaire, qte, tva, montant.
Ne pas utiliser les lettres l (L minuscule), O ou I (i majuscule) toutes
seules comme nom
Nommer les variables tout en minuscules
Si un nom de variable est composé, utiliser le tiret bas pour séparer
les mots. Ex : somme_totale
Nommer les constantes (les variables que vous ne voulez pas
changer) TOUT EN MAJUSCULES.
14/12/2014
22
TYPE D’UNE VARIABLE
Une variable a un type, qui correspond au type de
donnée qu‘elle contient
Dans certains langages, le type d'une variable doit être
fixé avant de l'utiliser : c'est une déclaration qui empêche
la variable de changer de type.
Dans Python, pas de déclaration obligatoire : le type
d'une variable peut changer si son contenu change
(typage dynamique)
14/12/2014
23
L’AFFECTATION
Tant qu'une variable n'a pas été définie, elle ne peut pas
être utilisée.
Pour la définir, il faut d'abord mettre une donnée dans (un
tiroir) une variable. On peut pour cela utiliser un type
d'instruction spécial : l'affectation (ou assignation).
L'affectation associe un identificateur (l’étiquette) avec
une variable (tiroir) et une valeur (la donnée contenue
dans le tiroir)
14/12/2014
24
L’AFFECTATION
Syntaxe
Dans les algorithmes, on note souvent l'opérateur d'affectation
par une flèche gauche ← ou par le même symbole que celui
des langages Pascal et Ada :=
En Python, l'opérateur d'affectation est le symbole = et se lit
« reçoit » (pour ne pas le confondre avec le symbole d'égalité
==). La syntaxe de l'instruction est donc :
identificateur = valeur
14/12/2014
25
L’AFFECTATION
Exemple 1 :
œuf = 12.50
se lit « œuf reçoit 12.50 » ou « la variable œuf reçoit la valeur
12.50 » et permet de réserver en mémoire une case (un tiroir), à
laquelle est associé le nom œuf (l'étiquette sur le tiroir) et qui
contient une donnée de type float dont la valeur est 12.50
(contenu du tiroir).
14/12/2014
26
L’AFFECTATION
En mode interactif
L'instruction ne donne pas de réponse => elle a fonctionné
Pour vérifier :
L'évaluation de la variable oeuf a permis d'obtenir son
contenu, sa valeur, affichée par l'interpréteur.
27
>>> oeuf = 12.50
>>>
>>> oeuf
12.5
>>>
L’AFFECTATION
La valeur affectée à sandwich est évaluée à partir de
l'expression œuf+pain qui additionne les valeurs des
deux autres variables.
14/12/2014
28
>>> pain = 8.50
>>> sandwich = oeuf + pain
>>> sandwich
21.0
L’AFFECTATION
Les variables évoluent c.à.d. que la valeur d’une même
variable peut changée au cours du temps.
Exemple 2 :
29
>>> vitesse
Traceback (most recent call last) :
File "<stdin>", line 1, in (module)
NameError: name 'vitesse' is not defined
>>> vitesse = 120
>>> vitesse
120
>>> vitesse = 90.0
>>> vitesse
90.0
L’AFFECTATION
On peut affecter à une variable une expression qui
contient non seulement des constantes littérales et/ou
d'autres variables mais aussi la même variable, ce qui
peut sembler étrange si on oublie que = n'a pas la même
signification qu'en mathématiques.
Exemple 3 :
30
>>> a=5
>>> b=6
>>> a=2*b+3*a # signifie calculer la valeur de 2b+3a et
# remplacer la valeur qui se trouve dans a par le résultat de ce calcul
>>> a
27
L’AFFECTATION
Une affectation qui est souvent utilisée est celle qui
permet d'augmenter (on dit incrémenter) la valeur d'une
variable de 1 :
Exemple : compteur = compteur + 1
De même, on peut décrémenter compteur :
Exemple : compteur = compteur - 1
31
L’AFFECTATION
Il existe des instructions d'affectation augmentée qui
permettent de raccourcir ces écritures.
Pour incrémenter compteur de 1 :
compteur += 1
Pour décrémenter compteur de 1 : compteur -= 1
Pour incrémenter compteur de 2 :
compteur += 2
32
L’AFFECTATION
En règle générale :
a += b équivaut à a = a + b
De la même manière :
a -= b <=> a = a - b
a *= b <=> a = a * b
a /= b <=> a = a / b
a //= b <=> a = a // b
a %= b <=> a = a % b
a **= b <=> a = a ** b
33
PYTHON ET LE TYPAGE DYNAMIQUE
En python, le type de la variable est déterminé au
moment de son affectation.
Le type d'une variable peut changer au cours du temps.
On peut connaitre le type courant d'une variable avec la
fonction type.
Syntaxe :
type(identificateur)
34
PYTHON ET LE TYPAGE DYNAMIQUE
Exemple :
35
>>> vitesse = 90
>>> type(vitesse)
<class 'int'>
>>> vitesse = 90.0
>>> type(vitesse)
<class 'float'>
>>> vitesse = "a l'arret"
>>> type(vitesse)
<class 'str'>
CONVERSION DE TYPE
Il existe plusieurs fonctions qui permettent de forcer le type
d'une variable en un autre type.
int() : permet de modifier une variable en entier, provoque une
erreur si cela n'est pas possible,
float() : permet la transformation en flottant,
str() : permet de transformer la plupart des variables d'un autre
type en chaînes de caractère.
Exemple
36
>>> int(3.14)
3
>>> str(3.14)
’ 3.14 ’
AFFECTER N’EST PAS COMPARER
affectation : a un effet, n’a pas de valeur
produit un changement (de la valeur de a)
ne renvoie pas de valeur
ATTENTION : L’affectation n’est pas commutative (le sens de
lecture se fait toujours de droite à gauche)
14/12/2014
37
>>> a = 3
>>> b = 2
>>> a = b
>>> a = 1
>>> 1= a
File "<stdin>", line 1
SyntaxError : can’t assign to literal
AFFECTER N’EST PAS COMPARER
comparaison : a une valeur, n’a pas d’effet
aucune variable n’est changée
renvoie une valeur (par exemple, True)
La comparaison est commutative
14/12/2014
38
>>> a == b
True
>>>
>>> a == b
True
>>> b==a
True
AFFECTATIONS MULTIPLES
Sous Python, on peut assigner une valeur a plusieurs variables
simultanément :
On peut aussi effectuer des affectations parallèles a l’aide d’un
seul opérateur :
14/12/2014
39
>>> a = b = 9
>>> a
9
>>> b
9
>>> a , b = 0.75 , 1
>>> a
0.75
>>> b
1
AFFECTATIONS MULTIPLES
Sous Python, parmi les avantages de l'affectation
parallèle: elle permet d'échanger les valeurs de 2
variables sans avoir à utiliser une troisième variable.
Exemple :
14/12/2014
40
>>> a = 2
>>> b=3
>>> a , b = b ,a # échange les valeurs de a et b
OPÉRATEURS ET EXPRESSIONS
Sous Python, on manipule les valeurs et les variables qui les
référencent en les combinant avec des opérateurs pour
former des expressions .
Exemple :
Dans cet exemple, nous commençons par affecter aux variables
a et b les valeurs 7,3 et 12, ensuite La seconde ligne de
l’exemple consiste a affecter a une nouvelle variable y le
résultat d’une expression qui combine les opérateurs * , + et /
avec les opérandes a, b, 3 et 5.
41
>>> a, b = 7.3, 12
>>> y = 3*a + b/5
EXPRESSIONS
Une expression est :
Assemblage de valeurs, variables et opérateurs,
Soumis à une syntaxe précise,
Qui renvoie une valeur dont le type du résultat est
déterminé par le type des variable et les
opérateurs utilisés.
14/12/2014
42
OPÉRATEURS
Un opérateur est un signe qui agit sur une ou plusieurs valeurs
(appelées opérandes), pour produire un résultat.
Exemple : + , - , OU , modulo
Les opérandes sont les valeurs combinées a l’aide des
opérateurs.
En Python, il existe plusieurs familles d'opérateurs :
Opérateurs arithmétiques
Opérateurs alphanumériques
Opérateurs de comparaison
Opérateurs logiques
43
OPÉRATEURS ARITHMÉTIQUES
+ : addition
- : soustraction
* : multiplication
44
>>> 8+5
13
>>> 8-5
3
>>> 8*5
40
** : puissance
% : modulo (calcule le reste
d’une division)
>>> 8 % 5
3
>>> 8**2
64
Opérateurs arithmétiques
OPÉRATEURS ARITHMÉTIQUES
PYTHON 3
/ : division réelle
// : division entière
45
>>> 8/5
1.6
>>> 8/4
2.0
>>> 8 // 5
1
PYTHON 2
/ : division réelle
// : division entière
>>> 8/5
1
>>> 8.0 /5
1.6
>>> 8 // 5
1
Opérateurs arithmétiques
OPÉRATEURS ARITHMÉTIQUES
Priorité des opérateurs arithmétiques
Sous Python, les règles de priorité sont les mêmes que celles
qui vous ont été enseignées au cours de mathématiques. Vous
pouvez les mémoriser a l’aide de l’acronyme PEMDAS :
P : pour parenthèses
E : pour exposant
M et D : pour multiplication et division, qui ont la même priorité
A et S : pour addition et soustraction, qui ont la même priorité
Si deux opérateurs ont la même priorité, l’évaluation est
effectuée de gauche a droite.
46
OPÉRATEURS ALPHANUMÉRIQUES
L'opérateur + sert a concaténer deux chaînes de
caractères c.à.d. mettre bout à
bout deux chaînes de caractères de manière à en former
une troisième.
Exemple :
14/12/2014
47
>>> c1 = ’ Bonjour ’
>>> c2 = ’ monsieur’
>>> c3=c1+ c2
>>> c3
’ Bonjour monsieur’
OPÉRATEURS ALPHANUMÉRIQUES
On ne peut concaténer que des chaînes de
caractères
Si on veut concaténer une chaine de caractères et une
valeur numérique, Il faut d'abord convertir la valeur
numérique en chaine de caractères avec la fonction str.
14/12/2014
48
OPÉRATEURS ALPHANUMÉRIQUES
Exemple :
14/12/2014
49
>>> age=40
>>> "L’université de Tlemcen à " + age + " ans "
Traceback (most recent call last) :
File "<stdin>", line 1, in (module)
TypeError: Can’t convert ‘int’ object to str simplicity
>>> "L’université de Tlemcen à " + str(age) + " ans "
"L’université de Tlemcen à 40 ans "
OPÉRATEURS ALPHANUMÉRIQUES
L'opérateur * sert a répéter une même chaîne de
caractères autant de fois qu’on veut.
Exemple
14/12/2014
50
>>> c1 = ’ Bonjour! ’
>>> c2 = ’ Bonjour! ’ * 3
>>> c2
’ Bonjour! Bonjour! Bonjour! ’
>>> c3 = c1* 3
>>> c3
’ Bonjour! Bonjour! Bonjour! ’
OPÉRATEURS DE COMPARAISON
== : égale à (=)
51
>>> 8 == 5
False
>>> 8 == 8
True
>>> 8 == 9 - 1
True
!= : différent de (≠)
>>> 8 != 5
True
>>> 8 != 8
False
>>> 8 != 9 - 1
False
OPÉRATEURS DE COMPARAISON
< : Inférieur strictement à (<)
52
> : supérieur strictement à (>)
>>> 8 > 5
True
>>> 8 > 9
False
>>> 8 < 2
False
>>> 8 < 9
True
OPÉRATEURS DE COMPARAISON
<= : Inférieur où égal à (≤)
53
>= : Supérieur où égal à (≥)
>>> 8 <= 2
False
>>> 8 <= 8
True
>>> 8 >= 8
True
>>> 8 >= 9
False
>>> a = 20
>>> 10<= a <=35
True
• Le résultat d’un opérateur de comparaison est de type
booléen (bool) .
OPÉRATEURS DE COMPARAISON 54
Les valeurs comparées peuvent être à priori de n’importe
quel type (numériques, caractères,…) , mais la comparaison
n’a de sens que si les deux valeurs comparées sont de même
type.
On peut très bien comparer des caractères (leur code ASCII
est comparé - ordre alphabétique, avec les majuscules avant
les minuscules), et des chaînes de caractères.
OPÉRATEURS DE COMPARAISON 55
Exemple :
>>> "w"<"t"
False
>>> "Chocolat noir " > "Chocolat blanc"
True
OPÉRATEURS LOGIQUES 56
Certains problèmes exigent parfois de formuler des conditions
qui ne peuvent pas être exprimées sous une condition simple.
Opérateurs logiques :
and : (Et logique) la condition A and B est True si a la fois la condition
A et la condition B sont True.
or : (Ou logique) la condition A or B est True si la condition A ou bien
la condition B ou bien les deux sont True
not : (Négation logique) la condition not A est True si la condition A
est False, et inversement
OPÉRATEURS LOGIQUES 57
On représente fréquemment les opérations logiques dans des
tables de vérité.
On utilise souvent 1 pour représenter True et 0 pour False.
A B not A A and B A or B
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
OPÉRATEURS LOGIQUES 58
Distributivité
A and (B or C) = (A and B) or (A and C)
A or (B and C) = (A or B) and (A or C)
Priorité des opérateurs logiques :
and est prioritaire sur or
not est prioritaire sur or et sur and
Théorème de Morgan :
not (A and B) = (not A) or (not B)
not (A or B) = (not A) and (not B)
LES ENTRÉES/SORTIES 59
Pour faire fonctionner un programme il faut lui fournir des
données et prévoir la possibilité de récupérer les résultats.
Ces deux opérations portent le nom générique d’opérations
d’entrée/sortie. Donc il s’agit de deux opérations distinctes:
Entrée de données (Lecture des données par la machine)
Sortie de données (Ecriture de données par la machine)
En python, les opérations d’entrée/sortie sont réalisées par
deux fonctions :
input() : fonction de lecture
print() : fonction d’écriture
LES ENTRÉES 60
Les instructions de lecture permettent à l’utilisateur de saisir
des valeurs au clavier pour qu’elles soient utilisées par le
programme.
En python, dés que le programme rencontre la
fonction input() l’exécution s’interrompt, affiche une
éventuelle invite à l’écran et attend que l’utilisateur entre
une donnée au clavier et valide par <entrée>, ensuite
l'exécution reprend.
LES ENTRÉES 61
On peut invoquer la fonction input() en laissant les
parenthèses vides. On peut aussi y placer en argument un
message explicatif destiné à l’utilisateur.
Le type de la variable créée par la fonction input() renvoie
toujours une chaine de caractères. Si vous souhaitez que
l’utilisateur entre une valeur numérique, vous devrez donc
convertir la valeur entrée (qui sera donc de toute façon de
type string) en une valeur numérique du type qui vous
convient, par l’intermédiaire des fonctions intégrées int() (si
vous attendez un entier) ou float() (si vous attendez un réel).
LES ENTRÉES 62
Exemple 1 :
>>> input()
5
’5’
>>>input(’entrez un entier’)
entrez un entier : 10
’10’
LES ENTRÉES 63
Exemple 2 :
>>> f1 = input(‘entrez un reel : ‘)
entrez un reel : 3.14159
>>> f2 = f1 * 2
>>> f3 = f1 / 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int‘
>>> type (f1)
(class ‘str’)
LES ENTRÉES 64
Exemple 2 (suite) :
>>> print(f2)
3.141593.14159
>>> f1 = float(f1)
>>> type(f1)
<class 'float'>
>>> f2, f3 = f1 * 2, f1 / 3
>>> print(f2, f3)
6.28318 1.0471966666666666
LES SORTIES 65
Les instructions d’écriture permettent au programme de
communiquer des valeurs ou messages à l’utilisateur en les
affichant à l’écran.
En Python l'affichage se fait de deux manières :
La première consiste a entrer au clavier le nom de la
variable, puis <Enter>. Python répond en affichant la valeur
correspondante
Exemple
>>> age = 40
>>> age
40
LES SORTIES 66
La deuxième façon se fait avec la fonction print suivi de
parenthèses, qui s'utilise à l’intérieur d’un programme ou en
mode interactif.
Exemple
>>> print (’Bonjour tout le monde’)
Bonjour tout le monde
>>> print(3)
3
LES SORTIES : AFFICHAGE DE
VARIABLES 67
Si on affiche une variable, sa valeur est affichée.
Exemple
>>> age=4.5
>>> print (age)
4.5
>>> nom = ’Omar’
>>> print (nom)
Omar
>>> print (nom,age)
Omar 4.5
LES SORTIES : AFFICHAGE DE
VARIABLES 68
La fonction print permet d’afficher n’importe quel nombre
de valeurs fournies en arguments (c’est-a-dire entre les
parenthèses). Par défaut, ces valeurs seront séparées les
unes des autres par un espace, et le tout se terminera par
un saut a la ligne.
On peut remplacer le séparateur par défaut (l’espace) par
un autre caractère quelconque (ou même par aucun
caractère), grâce a l’argument ≪ sep ≫.
De même, on peut remplacer le saut à la ligne terminal
avec l’argument ≪ end ≫ .
LES SORTIES : AFFICHAGE DE
VARIABLES 69
Exemple
>>> print("Bonjour", "a", "tous", sep ="*")
Bonjour*a*tous
print("Bonjour", "a", "tous", sep ="")
Bonjouratous
>>> print (a,b,c,sep=’’)
234
>>>i=5
>>> print (i,end=’’)
5 >>>
LES SORTIES : AFFICHAGE MIXTE 70
Pour afficher des messages comportant du texte et des valeurs
numériques, il y a plusieurs méthodes.
Exemple 1 : Méthode 1
Ici dans l'exemple 1, la fonction print est appelée avec un seul
argument qui est le résultat de la concaténation de 3 chaînes de
caractères.
>>> age=3
>>> print (‘Omar a ’ + str(age) + ‘ ans’)
Omar a 3 ans
>>>
LES SORTIES : AFFICHAGE MIXTE 71
Exemple 2 : Méthode 2
Dans l'exemple 2, la fonction print est appelée avec 3 paramètres
(séparés par des virgules). Elle sépare automatiquement
l'affichage de ces arguments par un espace
L’affichage de print est terminé par un retour à la ligne.
>>> age=3
>>> print (‘Omar a’ , age , ‘ans’)
Omar a 3 ans
>>>
LES SORTIES : AFFICHAGE MIXTE 72
Affichage par chaîne de formattage
Le message remplace toutes les valeurs par l'indication de
leur format. Les valeurs sont données a part dans une liste.
La liste est séparée du message par le caractère %.
La liste des principaux formats possibles :
%d : entier
%f : flottant
%s : chaîne de caractères
%r : booléen
LES SORTIES : AFFICHAGE MIXTE 73
Exemple :
>>> age=3
>>> message=‘Omar a %d ans’ %age
>>> print (message)
Omar a 3 ans
>>>print(" l’année prochaine il aura %d ans " %(age+1) )
L’année prochaine il aura 4 ans
>>> nom= ’ Omar ’
>>> message=‘%s a %d ans’ %(nom,age)
>>>print(message)
Omar a 3 ans
LES SORTIES : LES SÉQUENCES
D’ÉCHAPPEMENT 74
À l’intérieur d’une chaîne, le caractère antislash (\) permet
de donner une signification spéciale à certaines séquences
de caractères :
Séquence Signification
\\ affiche un antislash
\’ Affiche une apostrophe
\’’ Affiche un guillemet
\n Permet un saut de ligne
\t Permet une tabulation
LES SORTIES : LES SÉQUENCES
D’ÉCHAPPEMENT 75
Exemple 1 :
>>>print(" Guido à dit : "bonjour" " )
File "<stdin>", line 1
print(" Guido à dit : "bonjour" " )
^
SyntaxError : invalid syntax
>>> print(" Guido à dit : \"bonjour\" " )
Guido à dit : "bonjour"
LES SORTIES : LES SÉQUENCES
D’ÉCHAPPEMENT 76
Exemple 2 :
>>>print(’Guido à dit c’est bien ’ )
File "<stdin>", line 1
print(’ Guido à dit c’est bien ’ )
^
SyntaxError : invalid syntax
>>> print(’ Guido à dit c\’est bien ’ )
Guido à dit c’est bien
LES COMMENTAIRES 77
Comme tout langage évolué, Python permet la présence de
commentaires dans un programme.
Les commentaires sont des textes explicatifs destinés aux
lecteurs du programme et ne seront pas lu par la machine.
Il faut les utiliser pour :
Annoter le code
Séparer les différentes parties du code
Indiquer le rôle de chaque variable (indispensable dés qu'on a
beaucoup de variables)
LES COMMENTAIRES 78
En Python les commentaires commencent toujours par le
caractère # jusqu'a la fin de la ligne.
Exemple :
# Ceci est un commentaire
age=20 # affecter la valeur 20 à la variable age
print (age) # pour afficher la variable age on utilise la
# fonction print
IMPORTER UN MODULE DE
FONCTIONS 79
Vous avez déjà rencontré des fonctions intégrées au
langage lui-même, comme la fonction abs() par exemple,
qui permet de connaitre la valeur absolue d’un nombre.
Cependant il n’est pas possible d’intégrer toutes les
fonctions dans le corps standard de Python, car il en existe
une infinité.
Les fonctions intégrées au langage sont relativement peu
nombreuses : ce sont seulement celles qui sont susceptibles
d’être utilisées très fréquemment.
Les autres sont regroupées dans des fichiers séparés que
l’on appelle des modules .
IMPORTER UN MODULE DE
FONCTIONS 80
Les modules sont des fichiers qui regroupent des ensembles
de fonctions.
Il existe un grand nombre de modules qui sont fournis
d’office avec Python. Souvent on essaie de regrouper dans
un même module des ensembles de fonctions apparentées,
que l’on appelle des bibliothèques.
Le module math, par exemple, contient les définitions de
nombreuses fonctions mathématiques telles que sinus,
cosinus, tangente, racine carrée, etc.
IMPORTER UN MODULE DE
FONCTIONS 81
Pour pouvoir utiliser ces fonctions, il vous suffit d’incorporer
la ligne suivante au début de votre programme :
from math import *
Cette ligne indique a Python qu’il lui faut inclure dans le
programme courant toutes les fonctions (c’est la signification du
symbole * ) du module math, lequel contient une bibliothèque de
fonctions mathématiques pré-programmées.
IMPORTER UN MODULE DE
FONCTIONS 82
Exemple :
>>> sqrt(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sqrt' is not defined
>>> from math import*
>>> sqrt(4)
2.0
EXERCICES ET
APPLICATIONS
14/12/2014
83
EXERCICE 1 : 84
Ecrivez un programme python qui permet d’affecter les
variables temps et distance par les valeurs 6.892 et
19.7 , et calculer la valeur de la vitesse. L’affichage,
après l’exécution de ce programme, devra se présenter
selon la forme suivante :
* * * * * Exercice1 * * * * *
La valeur de la vitesse est : 2.8583865351131745
EXERCICE 1 : SOLUTION 85
print('* * * * * Exercice1 * * * * *') # affichage
temps = 6.892 # affectation
distance = 19.7 # affectation
vitesse = distance/temps # affectation
print ("La valeur de la vitesse est : ", vitesse) # affichage
Pour l’affichage avec print il y a deux autres solutions :
print ("La valeur de la vitesse est : " + str(vitesse))
print ("La valeur de la vitesse est : %f" %vitesse)
EXERCICE 2 : 86
Ecrivez un programme python qui à partir du temps et de
la distance fournis en données , permet de calculer la
vitesse. L’affichage, après l’exécution de ce programme,
devra se présenter selon la forme suivante :
* * * * * Exercice2 * * * * *
temps = 2.386
distance = 18.5
* * * * * * * * * * * * * * * * *
vitesse = 7.753562447611064
N.B : Dans l’affichage du programme, les chiffres en gras
représentent les nombres introduits au clavier par l’utilisateur.
EXERCICE 2 : SOLUTION 87
print('* * * * * Exercice2 * * * * *')
distance = float(input('distance = '))
temps = float(input("temps = "))
vitesse = distance/temps
print('* * * * * * * * * * * * * * * *')
print('vitesse = ' ,vitesse)
Remarque: lors de la lecture des variables réelles, nous
utilisons "float" pour convertir la lecture d’une chaîne de
caractères par un réel
EXERCICE 3 : 88
Ecrivez un programme Python qui demande à l'utilisateur de
taper 5 entiers et qui affiche leur moyenne. L’affichage,
après l’exécution de ce programme, devra se présenter
selon la forme suivante :
Tapez la valeur numéro 1 = 6
Tapez la valeur numéro 2 = 10
Tapez la valeur numéro 3 = 36
Tapez la valeur numéro 4 = 2
Tapez la valeur numéro 5 = 7
La moyenne de 6, 10, 36, 2 et 7 vaut : 12.2
EXERCICE 3 : SOLUTION 89
a = int (input('Tapez la valeur numéro 1 = '))
b = int (input('Tapez la valeur numéro 2 = '))
c = int (input('Tapez la valeur numéro 3 = '))
d = int (input('Tapez la valeur numéro 4 = '))
e = int (input('Tapez la valeur numéro 5 = '))
s= a+b+c+d+e
m=s/5
print('la moyenne de ' , a, ',' , b , ',' , c , ',' , d , 'et' , e , ' vaut : ',m)
Remarque: lors de la lecture des variables entières, nous
utilisons "int" pour convertir la lecture d’une chaîne de
caractères par un entier.
EXERCICE 4 : 90
Ecrivez un programme Python qui demande à l'utilisateur de
taper 5 entiers et qui affiche leur moyenne, le programme
ne devra utiliser que 2 variables. L’affichage, après
l’exécution de ce programme, devra se présenter selon la
forme suivante :
Tapez la valeur numéro 1 = 6
Tapez la valeur numéro 2 = 10
Tapez la valeur numéro 3 = 36
Tapez la valeur numéro 4 = 2
Tapez la valeur numéro 5 = 7
La moyenne vaut : 12.2
EXERCICE 4 : SOLUTION 91
a = int (input('Tapez la valeur numéro 1 = '))
s = 0
s = s+a
a = int (input('Tapez la valeur numéro 2 = '))
s = s+a
a = int (input('Tapez la valeur numéro 3 = '))
s = s+a
a = int (input('Tapez la valeur numéro 4 = '))
s = s+a
a = int (input('Tapez la valeur numéro 5 = '))
s = s+a
s = s/5
print('la moyenne vaut : ',s)
EXERCICE 5 : 92
Ecrivez un programme Python qui demande à l'utilisateur de
saisir son nom et son année de naissance et qui affiche son
âge. L'année courante sera mise dans une variable.
L’affichage, après l’exécution de ce programme, devra se
présenter selon la forme suivante :
Mohammed votre âge est 20 ans
N.B : Dans l’affichage du programme, les caractères et chiffres en
gras représentent les nombres introduits au clavier par l’utilisateur.
EXERCICE 5 : SOLUTION 93
nom=input('entrez votre nom')
annee_naissance= int(input('entrez votre année de naissance'))
annee_courante=2014
age=annee_courante-annee_naissance
print(nom,"votre âge est",age,"ans")
EXERCICE 6 : 94
Analysez le programme Python suivant et essayer de
deviner son affichage après l’exécution .
Essayer d’aligner l’affichage en utilisant la méthode des
chaînes de formatages.
EXERCICE 6 : 95
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%s coûte %d DA" % (prod1, prix1))
print("%s coûte %d DA" % (prod2, prix2))
print("%s coûte %d DA" % (prod3, prix3))
print("%s coûte %d DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 96
Alimentation Générale
=====================
oeuf coûte 12 DA
pain coûte 8 DA
camembert coûte 160 DA
pistache coûte 1250 DA
EXERCICE 6 : SOLUTION 97
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%10s coûte %d DA" % (prod1, prix1))
print("%10s coûte %d DA" % (prod2, prix2))
print("%10s coûte %d DA" % (prod3, prix3))
print("%10s coûte %d DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 98
Alimentation Générale
=====================
oeuf coûte 12 DA
pain coûte 8 DA
camembert coûte 160 DA
pistache coûte 1250 DA
EXERCICE 6 : SOLUTION 99
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %5d DA" % (prod1, prix1))
print("%-10s coûte %5d DA" % (prod2, prix2))
print("%-10s coûte %5d DA" % (prod3, prix3))
print("%-10s coûte %5d DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 100
Alimentation Générale
=====================
oeuf coûte 12 DA
pain coûte 8 DA
camembert coûte 160 DA
pistache coûte 1250 DA
EXERCICE 6 : SOLUTION 101
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8.5
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %5d DA" % (prod1, prix1))
print("%-10s coûte %5d DA" % (prod2, prix2))
print("%-10s coûte %5d DA" % (prod3, prix3))
print("%-10s coûte %5d DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 102
Alimentation Générale
=====================
oeuf coûte 12 DA
pain coûte 8 DA
camembert coûte 160 DA
pistache coûte 1250 DA
EXERCICE 6 : SOLUTION 103
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8.5
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %5f DA" % (prod1, prix1))
print("%-10s coûte %5f DA" % (prod2, prix2))
print("%-10s coûte %5f DA" % (prod3, prix3))
print("%-10s coûte %5f DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 104
Alimentation Générale
=====================
oeuf coûte 12.000000 DA
pain coûte 8.500000 DA
camembert coûte 160.000000 DA
pistache coûte 1250.000000 DA
EXERCICE 6 : SOLUTION 105
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8.5
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %5.2f DA" % (prod1, prix1))
print("%-10s coûte %5.2f DA" % (prod2, prix2))
print("%-10s coûte %5.2f DA" % (prod3, prix3))
print("%-10s coûte %5.2f DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 106
Alimentation Générale
=====================
oeuf coûte 12.00 DA
pain coûte 8.50 DA
camembert coûte 160.00 DA
pistache coûte 1250.00 DA
EXERCICE 6 : SOLUTION 107
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8.5
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %8.2f DA" % (prod1, prix1))
print("%-10s coûte %8.2f DA" % (prod2, prix2))
print("%-10s coûte %8.2f DA" % (prod3, prix3))
print("%-10s coûte %8.2f DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 108
Alimentation Générale
=====================
oeuf coûte 12.00 DA
pain coûte 8.50 DA
camembert coûte 160.00 DA
pistache coûte 1250.00 DA
EXERCICE 6 : SOLUTION 109
prod1, prix1 = "oeuf", 12
prod2, prix2 = "pain", 8.5
prod3, prix3 = "camembert", 160
prod4, prix4 = "pistache", 1250
print("Alimentation Générale")
print("=" * 21)
print() # affiche une ligne vide
print("%-10s coûte %-8.2f DA" % (prod1, prix1))
print("%-10s coûte %-8.2f DA" % (prod2, prix2))
print("%-10s coûte %-8.2f DA" % (prod3, prix3))
print("%-10s coûte %-8.2f DA" % (prod4, prix4))
EXERCICE 6 : SOLUTION 110
Alimentation Générale
=====================
oeuf coûte 12.00 DA
pain coûte 8.50 DA
camembert coûte 160.00 DA
pistache coûte 1250.00 DA
Recommended