Le langage Python 3.x Syntaxe 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/UCWpkVtH93qQ5J pSZEwONjGA
YouTube
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 listes
Attention : 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
• portablesur 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
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 promptprincipal,
• 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éractifavec 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
Appeler une fonction
écrite dans un fichierMode 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 elif
else except exec finally
for from global if
import in is lambda
not or pass print
raise return try while
yield
Spécifique Python
Déclaration d'une variable et Actions de base : affectation, affichage, saisie
Actions de bases : exemples en Python
• Afficherà l'écran
print("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 : ")
• Affecterune valeur à une variable
gagne = True
nbCoupsJoues = nbCoupsJoues + 1
Affectation
Affecter une valeur à une variable (Python)
A gauche: le nom d'une variable
le 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 valeurpeut être celle d'une variable : a = b (ou a ←b) signifie que la variable a reçoit la valeur de b
illustration python
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 valeuret la mémorise dans cette case mémoire
Spécifique Python
Typage dynamique en Python
Types :
• nombre entier
• chaîne de caractères (String)
• réel (float)
• booléen
Spécifique Python
Afficher
(à l'écran)la valeur d'une variable(en mode intéractif seulement) Utilise la fonction
Spécifique Python
Saisir une valeur
En Python 3, la fonction inputretourne (toujours) une chaine de caractères,
Spécifique Python
la variable age contient la chaine de
caractères '45' (donc ce n'est pas un
entier)
Saisir une valeur en Python
En Python 3, si on veut saisir une valeur numérique, il faut changer son type dans le programme :
Spécifique Python
Les guillemets indiquent que '18' est une chaine de caractères
la fonction int(paramètre) convertitle paramètre en une
valeur entière
Saisir une valeur en Python
En Python 3, si on veut saisir une valeur numérique, il faut changer son type dans le programme :
Spécifique Python
la fonction int(paramètre) convertitle paramètre en une
valeur entière
EXEMPLES AVEC LE MODULE TURTLE
Exercices de dessin avec la tortue
Principales fonctions du module turtle
reset() Efface tout
goto(x, y) Aller au point (x, y)
forward(distance) Avancer d'une distance donnée backward(distance) Reculer
up() Relever le crayon (pour pouvoir
avancer sans dessiner)
down() Abaisser le crayon
Exercice Python
Fonctions du module turtle (suite)
color(couleur) <couleur> peut être une chaîne prédéfinie ('red', 'blue', 'green', etc.) left(angle) Tourner à gauche d'un angle donné
(exprimé en degrés) right(angle) Tourner à droite
width(épaisseur) Choisir l'épaisseur du tracé fill(1) Remplir un contour fermé à l'aide
de la couleur sélectionnée
write(texte) <texte> est une chaîne de caractères entre " " ou '...'
Exercice
Python
Exercice
démonstration
Le programme de ce dessin
Définition du
sous-programmecroix
sous-programme : fonctionou procédure
3 appels du sous- progr. croix
Définition d'un sous-programme en python
Définition d'un sous-programme en python
entêtede la fonction (sur une ligne)
corpsde 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
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ètreset 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
Des instructions simples et complexes
(en python) Ce bloc d'instructions
contient quatreinstructions –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 quatreinstructions –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'instructionsqui sera répété plusieurs fois.
Ce bloc sera exécuté tant que la conditionest vraie.
Ce bloc d'instructions contient deuxinstructions
–un test –une affectation
illustration python
Une instruction complexe (2)
(en python) Le test(if) contient
un bloc d'instructionsqui ne sera exécuté que si la conditionest vraie.
Ce bloc d'instructions contient une instruction
–une affectation
illustration python
Quelques instructions
Illustration sur un programme simple actions de base, test, boucle et
expressions
Quelques instructions
Algorithme 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 :
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)
Expressions
• Une expression a une valeur mais seule elle ne faitrien
NB : 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 pythonOpérateurs logiques
Non (A et B) = (Non A) ou (non B) A Non A
Not Vrai Faux Faux Vrai
A B A etB
and A ouB
or Vrai Vrai Vrai Vrai Vrai Faux Faux Vrai Faux Vrai Faux Vrai Faux Faux Faux Faux
Indentation, test et boucle
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
...
forvariable inliste_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,
La boucle "POUR" - Syntaxe 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
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 boucle while condition :
instructions de la boucle instructions après la boucle
La condition est évaluée si 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èreexécution : une itération 2èmeexécution : 4 itérations
Exercice sur les boucles Saisie 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
Exercice sur les boucles Saisie d’une note correcte
Exercice
Saisie d’une note correcte : appel de la fonction
Exercice
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
returnresult Spécifique
Python
Le mot clé returnest 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écifique Python
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écifique
Python
Expressions booléennes et boucle
soient a et p deux entiers positifs. Pour chaque nombre entre 100 et 100 + a, afficher si ce nombre est multiple de p
Exercice
Correction : année bissextile
Exercice
Fonction qui affichesi une année est bissextile On définit une fonction qui Affiche une phraseindiquant sil'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éenne
pour tester si une année est bissextileOn 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 print
Affichage à l'écran
Fonction print
print accepte plusieurs paramètres contenant les éléments à afficher (séparés par des virgules).
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 à afficher
la 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 fin la 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 ligne
print("Bonjour",end='') # le curseur reste sur la ligne print(" … Marie") # Bonjour … Marie (même ligne)
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 unevaleur
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) :
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 listeset les tuplessont des séquences –liste: séquence modifiable
–tuple: ne peuvent être modifié
• Les listessont construites avec des crochets [ ],
• Les tuplessont 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équences
VD2
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 Listessont des séquences modifiables
dans une liste,
on peut REMPLACER un élément EXISTANT par un autre
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)
Echangerle 2èmeélément de L2 avec le 3ème élément de L3
Avant
Après
Exercices rapides sur les listes en python
Et en plus :
définition d'une liste en compréhension ajouter un élément à une liste
parcourir 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
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 ?
Exercices rapides sur les listes (3)
• Affecter à la variable a1 le 1erde 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 L3Avant
Après