• Aucun résultat trouvé

algo-prog Prepa INSA 1: Le langage Python syntaxe et exemples

N/A
N/A
Protected

Academic year: 2022

Partager "algo-prog Prepa INSA 1: Le langage Python syntaxe et exemples"

Copied!
22
0
0

Texte intégral

(1)

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

(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 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

(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 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

(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 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

(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 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

print

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

(6)

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-programme

croix

sous-programme : fonctionou procédure

3 appels du sous- progr. croix

Définition d'un sous-programme en python

(7)

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

(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è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

(9)

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 :

(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)

(11)

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 python

Opé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

(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

...

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,

(13)

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

(14)

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

(15)

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 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 print

Affichage à l'écran

Fonction print

print accepte plusieurs paramètres contenant les éléments à afficher (séparés par des virgules).

(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 à 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)

(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 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) :

(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 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

(19)
(20)

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

(21)

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 ?

(22)

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 L3

Avant

Après

Références

Documents relatifs

[r]

- valeur d'une variable - valeur d'une expression même nombre de paramètres (*). même ordre des paramètres (*) même type

FONCTION longSuiteTcheque(n:entier)  entier FONCTION estBissextile(an:entier)  booléen FONCTION pourcentPairTcheq(n:entier)  réel... Entêtes

tant qu'on entre une valeur positive, on redemande de saisir alors qu'on voudrait s'arréter. Retenez : TANT QUE + condition de poursuite de

Ecrire une fonction booléenne qui retourne vrai si la position (xJoueur,yJoueur) d'un joueur se situe à l'intérieur d'un terrain rectangle de largeur et longueur données en

print accepte plusieurs paramètres contenant les éléments à afficher (séparés par des virgules) ....

• format est une méthode de la classe STRING qui permet de formater l'affichage d'une. format d'affichage

De nombreux composants graphiques (ou widgets) sont disponibles : fenêtre (classe Tk), bouton (classe Button), case à cocher (classe Checkbutton), étiquette (classe Label), zone