12/11/2018
1
Le langage Python 3.xSyntaxe et exemples
Lisez tout !Ne retenez pas, mais ré-ouvrez en TP
Contenu
• Quelques ressources : vidéos et cours• Premiers pas en python : installation et premier programme• Déclaration d'une variable et Actions de base : affectation,
affichage, saisie• le module turtle : dessin avec la tortue• Exemple de définition d'une fonction• Quelques instructions• Opérateurs• Indentation, test et boucle• Exercices (expression, test, boucle et fonction)• La fonction print• Séquences : liste, tuple et range• Exercices sur les listes
Quelques ressources
vidéos et cours
Cours de Python 3 (sur moodle)de Bob Cordeau & Laurent Pointal
• lire jusqu'à 2.2.2 (pages 1 à 6)• identificateur, style de nommage
• lire jusqu'à 2.7.2 (pages 6 à 12)– notion d'expression (2.3)– types entiers, réels (2.4 et 2.5)– variables et affectation (2.6)– chaines de caractères (lire seulement 2.7.1 et 2.7.2)
• (ne pas lire 2.7.3 jusque 2.8)• lire 2.9 jusque 3.3 (pages 16 à 21)
– Entrées / sorties (2.9)– instructions composées, tests et boucles (3.1, 3.2, 3.3)
Mooc sur la programmation en python(Massive Open Online Course)
• Mooc python sur France Université Numérique
• Le mooc est fini (on ne peut plus s’inscrire)vous pourrez vous inscrire l’an prochain en sept (notez le
dans vos agendas)• Playlist des vidéos sur youtube
– dans le moteur de recherche de youtube– tapez mooc python– sélectionnnez la chaine (et pas la vidéo d’introduction)
• https://www.youtube.com/channel/UCWpkVtH93qQ5JpSZEwONjGA
YouTube
12/11/2018
2
Regardez les Vidéos de la semaine 2 (5 à 10 min chacune)
Vidéos à regarder (A)Vidéos 1 et 2 (de la semaine 2 du mooc Python)
• 2.1 Introduction au typage dynamique (7:12)– Objet, méthode, variable
• 2.2 Les types numériques (7:48))
• 2.6 Introduction aux tests if/else (4:10)• 2.8 Les chaînes de caractères (9:46)
• A voir jusque 5:40 car après ça parle du passage des chaines de caractères aux listes.
Vidéos à regarder (B)Vidéos 6 et 8 (de la semaine 2 du mooc Python)
• 2.3 Les séquences (10:50)– Liste, Tuple, chaines de caractères– in, + , min, max, index, count, upper, slicing (5 ')
• 2.4 Les listesAttention : le range n'est pas une liste en pythone 3.4
• 2.7 Introduction aux boucles for et aux fonctions (9:29)Attention : utilise le print sans les parenthèses (python 2.7)
Vidéos à regarder (C)Vidéos 3, 4 et 7 (de la semaine 2 du mooc Python)
Pourquoi le langage Python ?Un langage de programmation • plaisant,
– syntaxe simple– programmes compacts et lisibles
• gratuit, avec des environnements de programmation• portable sur différent systèmes d'exploitation
(Unix, Mac OS, Windows, etc.)• accès à des types de données évolués (listes,
dictionnaires, …) • orienté objet
Premiers pas en python
12/11/2018
3
Installer Python et un environnement de travail
• Installer Python (version 3.x)• Python 3.4.1 Windows x86 MSI Installer
(Windows binary -- does not include source)
• environnement de travail : IDLE
• L'interpréteur peut être lancé directement depuis la ligne de commande – dans un « shell » Linux,– dans une fenêtre DOS sous Windows– dans une "fenêtre de terminal"
Premier pas en Python
Mode intéractif
>>>• signal d'invite, ou prompt principal, • indique que Python est prêt à exécuter une commande
Mode intéractif
• Les instructions sont exécutées à chaque fin de ligne. Pas de re-exécution possible.
Ecrire le programme dans un fichier
Avec l'editeur (IDLE)• ici édite le fichier "test.py"
Exécution du programme test1.py
Mode intéractif avec exécution des instruction du fichier test1.py
Ecrire une fonction dans un fichier
Avec l'editeur (IDLE)• ici édite le fichier "test.py"• qui contient la définition d'une fonction
12/11/2018
4
Appeler une fonction écrite dans un fichier
Mode interactif : ici : appel de la fonction définie dans test.py(Il faut faire en sorte que la fonction carré soit connue)
29 mots réservés du langage Python
and assert break class continue def del elifelse except exec finallyfor from global ifimport in is lambda not or pass printraise return try while yield
SpécifiquePython
Déclaration d'une variable et Actions de base :
affectation, affichage, saisie
Actions de bases : exemples en Python
• Afficher à l'écranprint("trop petit !")
print("Gagné en ",nbCoupsJoues, " coups ! ")
• Saisir (ou lire) (introduire une valeur au clavier)age = input("Quel est votre age ? ")nbPropose = input( "Entrez un nb entre 0 et 100 : ")
• Affecter une valeur à une variablegagne = True
nbCoupsJoues = nbCoupsJoues + 1
AffectationAffecter une valeur à une variable (Python)
A gauche : le nom d'une variablele signe = (= est l'opérateur d'affectation en Python)
a droite : une valeur
Affecter une valeur à une variable (3)
Chacune de ces instructions • crée une valeur• la mémorise dans la case mémoire (la variable)
dont le nom est écrit à gauche du signe =
La valeur peut être celle d'une variable : a = b (ou a ← b)signifie que la variable a reçoit la valeur de b
(et donc b ne change pas de valeur)
illustration python
12/11/2018
5
Déclaration d’une variable en python : se fait lors de l’initialisation ed la variable
Si ces variables n'existaient pas déjà,
Chacune de ces instructions
• crée un nom de variable • lui attribue un type• réserve un emplacement en mémoire de la taille du type
• relie le nom de la variable et la case mémoire
• crée une valeur et la mémorise dans cette case mémoire
SpécifiquePython
Typage dynamique en PythonTypes :• nombre entier
• chaîne de caractères (String)
• réel (float)
• booléen
SpécifiquePython
Afficher (à l'écran) la valeur d'une variable
(en mode intéractif seulement)
Utilise la fonction print
SpécifiquePython
Saisir une valeurEn Python 3, la fonction input retourne (toujours) une
chaine de caractères,
SpécifiquePython
la variable age contient la chaine de
caractères '45'(donc ce n'est pas un
entier)
Saisir une valeuren Python
En Python 3, si on veut saisir une valeur numérique,il faut changer son type dans le programme :
SpécifiquePython
Les guillemets indiquent que '18'est une chaine de caractères
la fonction int(paramètre)convertit le paramètre en une
valeur entière
Saisir une valeuren Python
En Python 3, si on veut saisir une valeur numérique,il faut changer son type dans le programme :
SpécifiquePython
la fonction int(paramètre)convertit le paramètre en une
valeur entière
12/11/2018
6
EXEMPLES AVEC LE MODULE TURTLE
Exercices de dessin avec la tortue
Principales fonctions du module turtle
reset() Efface toutgoto(x, y) Aller au point (x, y)forward(distance) Avancer d'une distance donnéebackward(distance) Reculerup() Relever le crayon (pour pouvoir
avancer sans dessiner)down() Abaisser le crayon
ExercicePython
Fonctions du module turtle (suite)
color(couleur) <couleur> peut être une chaîneprédéfinie ('red', 'blue', 'green', etc.)
left(angle) Tourner à gauche d'un angle donné(exprimé en degrés)
right(angle) Tourner à droitewidth(épaisseur) Choisir l'épaisseur du tracéfill(1) Remplir un contour fermé à l'aide
de la couleur sélectionnéewrite(texte) <texte> est une chaîne de caractères
entre " " ou '...'
ExercicePython Exercice
démonstration
Le programme de ce dessin
Définition du sous-programme
croix
sous-programme : fonction ou procédure
3 appels du sous-progr. croix
Définition d'un sous-programme en python
12/11/2018
7
Définition d'un sous-programme en python
entête de la fonction
(sur une ligne)
corps de la fonction (indenté)
Définition d'un sous-programme en python
Après le signe : les instructions sont
décalées de 4(indentation)
Définition d'un sous-programme en python
les paramètres sont entre parenthèses ( ) . cette fonction n'a pas
de paramètres
l'entête de la fonction est suivie d'un
commentaire qui décrit ce qu'elle fait
Appeler la fonction triangle
Exemple de définition d'une fonction
Exemple de définition d'une fonction en Python : def (1)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres et leur
role – description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
12/11/2018
8
Exemple de définition d'une fonction en Python (2)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres et leur
role – description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
Exemple de définition d'une fonction en Python (3)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres et leur
role – description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
Exemple de définition d'une fonction en Python (4)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres
et leur role (commentaires)– description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
Exemple de définition d'une fonction en Python (4 bis)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres
et leur role (commentaires)– en python le type des
paramètres n’est pas précisé– il est implicite– description du résultat
(s'il y en a un)• Corps de la fonction
– ensemble des instructions
python
Exemple de définition d'une fonction en Python (5)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres et leur
role – description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
Exemple de définition d'une fonction en Python (6)
Exemple en python : • Entête de la fonction
– nom de la fonction– liste des paramètres et leur
role – description du résultat
(s'il y en a un)
• Corps de la fonction– ensemble des instructions
python
12/11/2018
9
Des instructions simples et complexes
(en python) Ce bloc d'instructions
contient quatre instructions– deux affectations– une boucle "tant que"– l'instruction return (mot clé)
illustration python
Des instructions simples et complexes
(en python) Ce bloc d'instructions
contient quatre instructions– deux affectations– une boucle "tant que"– l'instruction return (mot clé)
illustration python
Une instruction complexe (1)
(en python) • La boucle contient
un bloc d'instructions qui sera répété plusieurs fois. Ce bloc sera exécuté tant que la condition est vraie.
Ce bloc d'instructionscontient deux instructions– un test– une affectation
illustration python
Une instruction complexe (2)
(en python) Le test (if) contient
un bloc d'instructions qui ne sera exécuté que si la condition est vraie.
Ce bloc d'instructionscontient une instruction– une affectation
illustration python
Quelques instructions
Illustration sur un programme simpleactions de base, test, boucle et
expressions
Quelques instructionsAlgorithme informel : Demander à l'utilisateur de Saisir un nom, vérifier que ce nom a au
moins deux lettres.Recommencer tant que ce n'est pas bon
En python :
12/11/2018
10
Instructions simples
• Affectation (d'une valeur à une variable)• Affichage (à l'écran) • Saisie (au clavier)
Instructions simples • Affectation (d'une valeur à une variable)• Affichage (à l'écran) • Saisie (au clavier)
Instructions simples • Affectation (d'une valeur à une variable)• Affichage (à l'écran) • Saisie (au clavier)
Instructions complexes
• Test (Si ... alors ... sinon ...)• Boucle• Appel de sous-programme
Instructions complexes• Test• Boucle (Tant que)• appel de sous-programme
Instructions complexes• Test• Boucle• Appel de sous-programme (fonction)
12/11/2018
11
Expressions• Une expression a une valeur
mais seule elle ne fait rienNB : au sens strict du terme, toutes les valeurs sont des expressions (voire même les instructions (? en C oui !)
Opérateurs
Opérateurs en python 3
• + - * /
• division entière : //
• modulo : %(reste de la division entière)
• puissance : **
Opérateurs de comparaison en python
Opérateurs logiques
Non (A et B) = (Non A) ou (non B)
A Non ANot
Vrai FauxFaux Vrai
A B A et Band
A ou Bor
Vrai Vrai Vrai VraiVrai Faux Faux VraiFaux Vrai Faux VraiFaux Faux Faux Faux
Indentation, test et boucle
12/11/2018
12
Indentation
• Permet de VOIR la structure du programme– Niveau 1
• Niveau 2 (par exemple dans un test)• Niveau 2
– Niveau 3 (par exemple un test dans une boucle)
• Niveau 2
– Niveau 1
• Essentielle en Python
Indentation et bloc d'instructions en python
Le test en Python...
instructions avant le test
if condition :
instructions si vrai
instructions après le test
Syntaxe avec la partie sinon :
instructions avant le test
if condition:
instructions si vrai
else:
instructions si faux
instructions après le test
La boucle "POUR" - Syntaxe en Python
En Python, l'instruction "for" répète un bloc d'instructions pour chaque valeur dans une liste donnée, dans l'ordre où elles apparaissent
Exemple :
La fonction range (Python)
n : entier positif range(0,n) ou range(n) genère les valeurs 0, 1, 2, … n-1
• range(3) gènère la suite 0,1,2• range(0,3) gènère la suite 0,1,2• range(1,3) gènère la suite 1,2
La boucle "POUR" en Python...
for variable in liste_valeurs :
instructions de la boucle
...
instructions après la boucle
La variable prend la première valeur de liste_valeurs, les instructions de la boucle sont exécutées
La variable prend la seconde valeur de liste_valeurs, les instructions de la boucle sont exécutées
etc.
La variable prend la dernière valeur de liste_valeurs, les instructions de la boucle sont exécutées
12/11/2018
13
La boucle "POUR" - Syntaxe en PythonL'instruction "for" répète un bloc d'instructions
pour chaque valeur dans une liste donnée, dans l'ordre où elles apparaissent
instructions avant la boucle
...
for variable in liste_valeurs :
instruction de la boucle
instruction de la boucle
...
instructions après la boucle
La boucle "TANT QUE" en Python...instructions avant la bouclewhile condition :
instructions de la boucleinstructions après la boucle
La condition est évaluéesi elle est vraie,
les instructions de la boucle sont exécutées, puis la condition est réevéluée et ainsi de suite jusqu'à ce que la condition devienne fausse.
sinon, les instructions de la boucle ne sont pas exécutées : on sort de la boucle, et les instructions situées après la boucle sont exécutées
Boucle "TANT QUE" en python
Initialisation de la condition
conditionà laquelle on
(re) exécute le corps de la boucle
instruction qui peut changer la
valeur de la condition
Boucle "TANT QUE" en python
1ère exécution : une itération
2ème exécution : 4 itérations
Exercice sur les bouclesSaisie d’une note correcte
• Ecrivez une fonction en python pour calculer et afficher la moyenne de 10 notes saisie au clavier en s'assurant que chaque note est bien dans l'intervalle [0,20]. Remarque : dans cet exercice on ne souhaite pas "conserver" les notes
Exercice
Exercices
12/11/2018
14
Exercice sur les boucles Saisie d’une note correcte
Exercice
Saisie d’une note correcte : appel de la fonctionExercice
corps d'une fonction avec résultat
nomFct(parametres):
''' type et role des paramètres et du résultat '''
result = ... # initialisation du résultat
.... # calcul du résultat
return result
SpécifiquePython
Le mot clé return est toujours situé à la dernière ligne du corps d'une fonction
qui retourne un résultat
Définir des valeurs par défaut des paramètres
def politesse(nom, titre='Monsieur'):print("Veuillez agréer ,",end=' ')
print(titre, nom, end=' ')print( ", mes salutations distinguées.")
SpécifiquePython
Le second paramètre (titre) de la fonction politesse est optionnel car il a
une valeur par défaut
Fonction avec paramètres optionnels
le paramètre end est optionnel.Sa valeur par défaut est le caratère de
fin de ligne
SpécifiquePython
Expressions booléennes et bouclesoient a et p deux entiers positifs. Pour chaque nombre entre 100 et 100 + a,
afficher si ce nombre est multiple de p
Exercice
12/11/2018
15
Correction : année bissextileExercice
Fonction qui affiche si une année est bissextile
On définit une fonction qui Affiche une phrase indiquant si l'année passée en paramètre est bissextile ou non
Ici la définition de la fonction
(avec def)
Ici 5 appels de la fonction en mode interactif
Fonction booléennepour tester si une année est bissextile
On définit une fonction qui RETOURNE vrai ou faux selon que l'année passée en paramètre est bissextile ou non
Ici la définition de la fonction (avec def)
Ici 5 appels de la fonction (le résultat s'affiche
car on est en mode interactif)
à refaire en pseudo code
Appel d'une fonction booléenne
• On peut appeler une fonction booléenne dans la condition d'un test puisque le résultat est vrai ou faux
à refaire en pseudo code
La fonction printAffichage à l'écran
Fonction print
print accepte plusieurs paramètres contenant les éléments à afficher (séparés par des virgules).
12/11/2018
16
Fonction print
Les paramètres suivants se nomment sep et end. Ils doivent être utilisés avec leur nom.
Fonction print
sep est le séparateur : la chaine de caractères qui sépare les différents éléments à afficherla valeur par défaut du séparateur est l'espace
Fonction print, différents séparateurs Fonction print
end est la chaine de caractères affichée à la finla valeur par défaut est le retour à la ligne ('\n')
Fonction print, le paramètre end
La valeur par défaut du paramètre end est le retour à la
ligne
Fonction print
print() # passe à la ligneprint("Bonjour",end='') # le curseur reste sur la ligneprint(" … Marie") # Bonjour … Marie (même ligne)
12/11/2018
17
Séquences Listes, tuples et plages (range)
Les "grands" types en Python 3
• numerics : int, float, complex, (et bool)
• sequences : list, tuple, range, str, bytes, bytearray,
• mappings, • files, • classes, • instances • exceptions
VOCABULAIRE : Les variables de ces types sont appelées des variables objets
(ou des objets)
Les "grands" types en Python 3
• numerics : int, float, complex
• sequences : list, tuple, range, str, bytes, bytearray,
types simples
types composites
Types simples
Une variable d'un type simple contient une valeur
unEntier = 123
unReel = 1.235e12
unBooleen = True
unCaractere = 'N'
unComplexe = 2+3j
Types composites
• entité bien définie composée d'un ensemble d'entités plus petites,
• une variable d'un type composite séquence– peut être vue comme un seul objet, – ou comme une suite ordonnée d'éléments
Les (quatre) types "séquence"
Les séquences sont des catégories de variables (objet) :
12/11/2018
18
Accéder à un élément d'une "sequence"
Chaque élément d'une séquence est dans une case numérotée (à partir de 0)
Listes et tuples
• Les listes et les tuples sont des séquences– liste : séquence modifiable– tuple : ne peuvent être modifié
• Les listes sont construites avec des crochets [ ], • Les tuples sont construits avec ou sans (),
• les items sont séparés par des virgules (pour les deux)
– listes : [] [a,b,c] [d]– tuples : () a, b, c (a,b,c) (d,)
Opérations sur les types séquencesVD2
Opérations en + pour les séquences modifiables (les listes)
Exemple d'une Liste en Python
en python, une liste peut contenir des éléments de types différents
Les Listes sont des séquences modifiables
dans une liste,on peut REMPLACER un élément
EXISTANT par un autre
Diapositive 108
VD2 The difference between shallow and deep copying is only relevant for compound objects (objects thatcontain other objects, like lists or class instances)delcroix; 16/04/2015
12/11/2018
19
Séquences non modifiables
• Les chaînes de caractères (Strings) et les tuples sont des séquences non modifiables:
– Une fois qu'ils ont été créés, ces objets ne peuvent plus être modifiés.
Exercices rapides sur les listes (5)Echanger le 2ème élément de L2 avec le 3ème
élément de L3Avant
Après
Exercices rapides sur les listesen python
Et en plus :définition d'une liste en compréhension
ajouter un élément à une listeparcourir une liste
Remarque
Les exercices sont corrigés ci-dessous en pyhton 3.4, en mode interactif.
Exercices rapides sur les listes (1)
• Initialisez une liste L1 contenant 5 fois l'entier 0• Initialisez une liste L2 contenant les entiers de 100
à 104• Initialisez une liste L3 contenant les éléments
False, 'FAUX', L1, L2 et la liste vide
Exercices rapides sur les listes (1)• La liste L1 contient 5 fois l'entier 0• La liste L2 contient les entiers de 100 à 104• L3 contient False, 'FAUX', L1, L2 et la liste vide
12/11/2018
20
Exercices rapides sur les listes (1)• La liste L1 contient 5 fois l'entier 0• La liste L2 contient les entiers de 100 à 104
Définition d'une liste en compréhension
• Définissez une liste L2 en compréhension contenant les entiers de 100 à 104
Définition d'une liste en compréhension
L'élément qui va constituer la liste
La boucle pour
pas de :
des [ ]
Exercices rapides sur les listes (2)
• affectez la valeur -1 en première position de L1• affectez la valeur False en dernière position de L2• affectez la valeur 'N' à la position d'indice 2 de L3
Exercices rapides sur les listes (2)• affectez -1 en première position de L1• affectez False en dernière position de L2• affectez 'N' à la position d'indice 2 de L3
Exercices rapides sur les listes (3)
• Affecter à la variable a1 le premier élément de la liste L1
• Affecter à la variable a2 l'avant dernier élément de la liste L2
• Affecter à la variable a3 le dernier élément de la liste L3
• Quel est le type de a3 ?
12/11/2018
21
Exercices rapides sur les listes (3)
• Affecter à la variable a1 le 1er de L1
• Affecter à a2 l'avant dernier élément de L2
• Affecter à a3 le dernier élément de L3
• Quel est le type de a3 ?
Exercices rapides sur les listes (4)
Longueur• calculer la longueur de L1• calculer la longueur des deux listes contenues
dans L3• calculer la longueur des deux premiers
éléments de L3
Exercices rapides sur les listes (4)• calculer la longueur de L1• longueur des deux listes contenues dans L3• longueur des deux premiers éléments de L3
Exercices rapides sur les listes (4)• calculer la longueur de L1• longueur des deux listes contenues dans L3• longueur des deux premiers éléments de L3
→ ERREUR False n'est pas une séquence
Exercices rapides sur les listes (5)
Echanger le 2ème élément de L2 avec le 3ème
élément de L3
Avant
Après
Top Related