0% ont trouvé ce document utile (0 vote)
0 vues54 pages

Introduction Python Etude (1)

Le document présente les concepts fondamentaux de la programmation en Python, y compris les variables, les types de données, les structures conditionnelles et itératives, ainsi que les types construits comme les listes et les tuples. Il décrit également les opérateurs arithmétiques, les fonctions mathématiques, et les méthodes pour manipuler les chaînes de caractères. Enfin, des applications pratiques sont fournies pour illustrer l'utilisation de ces concepts dans des programmes simples.

Transféré par

mchsirene
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues54 pages

Introduction Python Etude (1)

Le document présente les concepts fondamentaux de la programmation en Python, y compris les variables, les types de données, les structures conditionnelles et itératives, ainsi que les types construits comme les listes et les tuples. Il décrit également les opérateurs arithmétiques, les fonctions mathématiques, et les méthodes pour manipuler les chaînes de caractères. Enfin, des applications pratiques sont fournies pour illustrer l'utilisation de ces concepts dans des programmes simples.

Transféré par

mchsirene
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

La programmation

Python
Les variables
Définition:
Une variable est un objet dont la valeur change
au cours de l’exécution d’un programme.
Une variable est caractérisée par:
• un nom :Composé de lettres, de chiffres
et/ou le underscore (_) et ne doit pas
commencer par un chiffre
• Un type
• Un contenu
Python gère les types de façon dynamique
selon les valeurs qui leurs sont affectées.
🡪L’utilisateur n’a pas à spécifier le type d’une
variable
II.2. Les types de données
Introduction: Il existe trois types prédéfinis en Python, les nombres,
les booléens et les chaines de caractères.
Nombre:
Il y a trois types numériques en Python :
Le type entier (int) permet de représenter n'importe quel nombre
entier, peu importe sa taille.
Le type flottant (float) permet de représenter des nombres
comportant une partie décimale, compris entre 10−308 et 10308.
Le type complexe (complex) permet de représenter des nombres
complexes, où le nombre imaginaire se note j.
Les types de données (Nombres)

Python propose plusieurs opérateurs arithmétiques repris dans la


figure 1. Il y a évidemment les classiques : l'addition (+),
la soustraction (-), la multiplication (*) et la division (/). On
retrouve également l'exponentiation (**) qui permet d'élever un
nombre à une certaine puissance. Enfin, il reste deux autres
opérateurs (// et %), destinés au calcul avec des nombres
entiers.
Application 1
Ecrire un programme qui affiche la somme des chiffres d’un
entier de trois chiffres a saisie par l’utilisateur.
Application 1 (Solution)
Les fonctions Mathématiques

Pour pouvoir utiliser les fonctions mathématiques


on devrait faire appel à une bibliothèque spéciale
(math ou cmath)
from math import *
sqrt(2)#fonction racine carrée
exp(1)#fonction exponentielle
cos(pi/6)
pow(2,3)#fonction puissance
2**3#2 puissance 3
abs(-2.3)#valeur absolue
Le module Random

Il permet de générer une valeur aléatoire dans un


intervalle donné. Il contient beaucoup de
fonctions utiles.
randint(1,6) #permet de choisir un nombre entier
aléatoirement entre 1 et 6 inclus
random() #permet de tirer au hasard un nombre
flottant entre 0 et 1
uniform(-2.5,6.8) #même chose entre -2.5 et 6.8
Remarque: ces fonctions font partie de la
bibliothèque random🡪 from random import *
Les types de données (Booléen)
Une expression booléenne est une expression
logique qui prend Vrai (True) ou Faux (False). Il
permet de comparer des nombres ou
expressions entre elles
Les opérateurs de comparaison sont les suivants :
strictement inferieur à se note <
inférieur ou égal à se note <=
strictement supérieur à se note >
supérieur ou égal à se note >=
égal à se note ==
différent de se note !=
Les structures de données
Pour des expressions booléennes plus compliquées, on peut utiliser les
opérateurs logiques suivants:

* Opérateurs logiques
En algorithme En Python Rôle
NON not Négation
ET and Conjonction
OU or Disjonction

Les tables de vérité de ces opérateurs sont récapitulées dans le tableau


suivant:
X Y NON(X) X ET Y X OU Y
vrai vrai faux vrai Vrai
vrai faux faux faux vrai
faux vrai vrai faux vrai
faux faux vrai faux faux
Lecture d’une Donnée X
Les informations saisies (clavier) sont rangées en mémoire
centrale. ?
Type
Remarque: input considère la valeur saisie comme une chaine de
caractère

Python
X=input()
X=input("Ecrire un message")
X=int(input("Entrer un entier")) 11
Affichage d’une Donnée et/ou message

Afficher (à l’écran) nécessite des instructions spécialisées

Python
print (x)
print ("x")
print ("x= ",x)
p
L’affectation:
Contenu

Type
Attribuer à une case mémoire(Variable) une valeur.
Variable=Valeur
Si variable contient déjà une valeur, elle sera écrasée par la
nouvelle valeur
Opérateurs ( Opérateurs d’affectation )

Affectation simple
x=4
Affectation simple
x=2
x=x+1

Affectation combinée
var1 = (var1 ) op (var2 ) var1 op= var2

i=i+1 i += 1

i=i*2 i *= 2

i=i/4 i /= 4
14
Les structures
conditionnelles
Structure conditionnelle réduite

C’est lorsqu’un seul cas est considéré.


Syntaxe:
if(condition):
traitement
Remarque: il faut respecter l’indentation
Activité: calculer la racine carrée d’un entier a si c’est
possible (fonction sqrt)
Structure conditionnelle complète

Elle est utilisée lorsque deux cas sont traités


Syntaxe:
if (condition):
Traitement1
else:
Traitement2
Activité: reprendre la dernière activité et dans le
cas où l’entier est négatif, calculer la racine
carrée de la valeur absolue
Structure conditionnelle généralisée
Elle est utilisée, lorsque plusieurs conditions sont
considérées.
Syntaxe:
if(condtion1):
Traitement1
elif(condition2):
Traitement2

Else:
Traitement_n
Application structure conditionnelle
généralisée
Ecrire un programme qui calcul M, la moyenne de 3 notes n1,
n2 et n3, saisies par l’utilisateur. Puis affiche s’il passe ou il
redouble. Dans le cas où il passe, afficher sa mention
(passable, assez bien, bien ou très bien)
Application structure conditionnelle
généralisée
Ecrire un programme qui calcul M, la moyenne de 3 notes n1,
n2 et n3, saisies par l’utilisateur. Puis affiche s’il passe ou il
redouble. Dans le cas où il passe, afficher sa mention
(passable, assez bien, bien ou très bien)
Les structures itératives
La boucle Finie: For
Elle est utilisée lorsque le nombre d’itérations (répétitions) est
connu à l’avance. Elle peut être représentée sous plusieurs
formes.
Synatxe:
For element in sequence:
Traitement à répéter
Element: C’est une variable créée par le for, ce n'est pas à
vous de l'instancier. Elle prend successivement chacune des
valeurs figurant dans la séquence parcourue.
Sequence: dépend de la structure à parcourir (entier, chaine,
liste, etc.)
Ne pas oublier l’indentation pour les différentes instructions du
traitement à répéter
La boucle Finie: For
Boucles For sur Les nombres
For var in [4,8,0]: Var prend 4, 8 et 0
For var in range(5): Var prend 0,1,2,3 et 4
For var in range(1,5): Var prend 1,2,3 et 4
For var in range(1,5,2): Var prend 1 et 3
Application: Afficher les entiers impairs inférieurs ou égales à 9
La boucle while

Cette structure permet de répéter une séquence d’instructions


tant qu’une certaine condition est vérifiée. En Python, elle s’écrit
sous la forme :
while (condition):
instructions
La condition correspond à n’importe quelle expression
booléenne.
Le traitement s’arrête une fois la condition sera évaluée à Faux.
Comme pour la boucle for, les instructions à répéter sont
indentées.
La boucle while
Une boucle infinie avec la condition True ne s’arrête jamais (sauf
à relancer l’interpréteur ou Ctrl+c).
while(True):
instructions
Remarque : il faut faire attention à bien choisir la condition à
mettre dans while pour être sûr que l’on sortira de la boucle à un
moment donné. C’est la différence avec une boucle for qui se
termine obligatoirement.
Application boucle while
On souhaite calculer le plus grand diviseur commun entre deux
entiers A et B en utilisant la méthode de la différence dont le
principe est le suivant: Comparer A et B. Si A est plus grand alors
A =A-B et si B est plus grand alors B=B-A. Se traitement sera
répéter jusqu’à avoir A = B. Ainsi le PGCD sera A ou B
Application boucle while
(Correction)
Break et continue

Dans les for et while, il existe deux mots clés qui peuvent
servir occasionnellement.
Le mot break permet d'interrompre une boucle quelle que
soit sa condition.
Le mot clé continue revient a faire un saut directement de
l'endroit où il est codé au for ou while, et ce sans exécuter
le code qui aurait pu rester en dessous.
Applications structures itératives

Application1: Ecrire un programme qui saisie un entier entre


20 et 30
Application2: Ecrire un programme qui saisit un entier
aléatoire entre 100 et 200. Puis, l’utilisateur doit essayer de
la deviner. L’utilisateur a 5 essais au maximum. En plus, le
programme doit, à chaque essai erroné, dire si la valeur
recherchée est plus grande ou plus petite.
Applications structures itératives (correction)

Application1:

Application2 (Solution 1):


Applications structures itératives (correction)

Application2 (Solution 2):


Les types construits

Les types construits sont des structures qui permettent de


stocker plusieurs informations dans une même variable.
Les structures peuvent être des séquences ou des
dictionnaires.
Séquence: C’est un conteneur ordonné d’éléments
indexés par des entiers indiquant leur position dans le
conteneur. Elle peut être une chaine de caractère,
un tuple ou une liste.
Dictionnaire
Les chaines de caractères
Les chaines de caractères:
Une chaine de caractères (str) est une séquence de
caractères (majuscules, minuscules, chiffres, caractères
spéciaux, accentués,…), délimitée par des guillemets
(simple ' ou double "). On peut généralement utiliser
indifféremment l'un ou l'autre type de guillemets.
Tous les caractères, à quelques exceptions près, sont
acceptés pour définir une chaine de caractères. Tout d'abord, il
est évident que si vous souhaitez utiliser le caractère ", vous
ne pourrez pas l'utiliser pour délimiter la chaine de caractères,
mais vous devrez utiliser ', et inversement.
Quelques fonctions sur les
chaines de caractères
[Link]() [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link]() [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
[Link] [Link]() [Link] [Link]
a.format_map [Link]() [Link] [Link]()
[Link] [Link]() [Link] [Link]
Accès à un caractère d’une
chaine
ch1[0]: permet d’accéder au premier
caractère de la chaine (ch1[1] le 2ème )
ch1[-1]: permet d’accéder au dernier
caractère de la chaine (ch1[-2] avant dernier).
ch1[n:p]: permet d’accéder aux caractères de
ch1[n] jusqu’à ch1[p-1]
Remarque: on ne peut pas modifier les
caractères d’une chaîne existante. Il faut en
créer une nouvelle à partir de celle que l’on
souhaite modifier.
Tuple

Définition: Un p-uplet tuple en Python est une collection


ordonnée et non modifiable d’éléments éventuellement
hétérogènes.
Syntaxe: Éléments séparés par des virgules, et délimités par
de parenthèses. (ce délimiteur est facultatif).
Exemples: tab1=(): un tuple vide
Tab2= (2,6,10, "a", False):un tuple à 5 éléments
Accès à un élément d’un tuple: Les éléments du tuple sont
indicés de 0 à nombre_éléments-1.
Tab2[0]=2; Tab2[3] ="a"; Tab2[4]=False
On peut parcourir la liste des indices à l'envers, tab2[-1]
retourne le dernier élément du tuple tab2🡪 Tab2[-1]=False
Remarques:
On peut réaffecter un tuple: Tab1=(0,1)🡪 il n’est plus vide
On ne peut pas modifier les valeurs d’un tuple
🡪Tab1[1]=8 génère une erreur
Les listes (Tableaux)
Un tableau (liste en Python) est une suite de valeurs
séparées par des virgules et délimitées par des crochets [].
Contrairement aux tuples la liste est un objet modifiable
(mutable).
Exemples:
Une liste vide : listevide=[]
liste1 = [1,2,3] # une liste d'entiers
liste2 = [1.2,0.2,3.7] # une liste de flotants
liste3 = [[1,2,3],[4,5],[10,20,30]] # une liste de listes
liste4=["début",10,True,"fin"] # une liste d’éléments de types
différents
liste5 = ['a','b','c'] # une liste de str
liste6 = [(1,2),(4,5)] # une liste de tuples, les tuples ne sont pas
modifiables.
Les listes (Tableaux)
Accès à un élément d’un tableau:
Comme pour un tuple, on accède à la valeur i de la liste L en
écrivant L[i], mais, contrairement au tuple, cet accès est
autorisé en écriture : l'instruction L2[0]=0, par exemple, est tout-
à-fait licite.
Soit la liste: maliste=[20,30,40,50,60]
maliste[0]=20; maliste[1]=30 maliste[4]=60 maliste|-1]=60
maliste[n:p] renvoie les éléments de la position n à p-1 de
maliste.
maliste[1:3] renvoie [30,40]
Si on ne renseigne pas l’indice de fin, Python prend le dernier
indice et si on ne renseigne pas l’indice de début, cela
correspond à l’indice 0 par défaut.
maliste[1:] #renvoie [30,40,50,60]
maliste[:2] #renvoie [20,30]
maliste[:]#renvoie [20,30,40,50,60]
Les listes (Tableaux)
Initialiser une liste:
Liste vide: L=[] ou L=list()
Initialiser L avec des valeurs: L=[10,20,30]
Remplissage automatique L=5*[0] 🡪 L=[0,0,0,0,0]
L=list(range(5)) 🡪 L=[0,1,2,3,4]
Ajouter un élément à une liste:
Soit la liste L=[10,20,30]
La fonction append(elemt) permet d’ajouter elemt à la fin d’une liste
Exemple: [Link](40) # L devient [10,20,30,40]
Insérer un élément dans une liste:
On peut insérer l’élément elemt dans la liste à l’indice indice et décaler
les éléments suivant avec : [Link](indice, elemt)
Exemples: [Link](2,40) # on ajoute 40 en 3e position de la liste (ou à
l'indice 2) 🡪L=[10,20,40,30,40]
[Link](20,50) # l'indice 20 est supérieur à la longueur de la liste, on
ajoute à la fin de la liste 🡪L=[10,20,40,30,40,50]
Les listes (Tableaux)
Supprimer un élément d’une liste:
La fonction pop permet de supprimer le dernier élément de la liste
Exemple: [Link]() 🡪 L=[10,20,40,30,40]
[Link](i): Permet de supprimer l’élément de position i dans la liste
Exemple: [Link](1) permet de supprimer L[1] (20)🡪
L=[10,40,30,40]
Remarque: La fonction pop permet de renvoyer l’élément supprimé.
L’instruction a=[Link]() permet de:
supprimer le dernier élément
Affecter la valeur supprimée à la variable a.
La fonction remove(elemt) permet de supprimer la première
apparition de elemt dans la liste
Exemple: [Link](40) supprime la première apparition de 40 dans la
liste 🡪 L=[10,30,40]
Remarque : si l’élément que l’on souhaite supprimer n’existe pas dans
la liste, un message d’erreur apparaît.
Les listes (Tableaux)
Quelques fonctions sur les listes:
len(maliste) : Retourne la taille d’une liste
L’opérateur + permet de concaténer deux listes :
a=[1,2,3],b=[4,5],c=a+b🡪 c=[1,2,3,4,5]
L’ opérateur * permet de dupliquer une liste n fois a=[1,2], a*3🡪
[1,2,1,2,1,2]
Déterminer l’indice d’un élément noté val dans une liste :
[Link](val)(on récupère le premier indice ; si l’élément
apparaît plusieurs fois, si l’élément n’apparaît pas un message
d’erreur l’indique).
Compter le nombre de fois qu’un élément apparaît :
[Link](val)
Copier une liste : newlist=[Link]()
Ou bien : newlist=list(maliste)
Trier les éléments d’une liste [Link]()
Les listes définies en compréhension
Les listes définies en compréhension: C’est une liste définie en utilisant
une boucle for
Exemple: Créer une liste contenant le carré des entiers de 0 à 10.
Solution1(en utilisant la fonction append):

Solution2 (liste définie ne compréhension):


Les listes (Tableaux)
Quelques exemples de constructions en compréhension de
la liste L :

L=[2*n for n in range(1,10)]

L=[n**2 for n in range(1,10)]

L=[-n for n in range(1,10) if n%2==0]

L=[n for n in range(1,10) if n>3 and n%3==0]

L=["m"+c for c in ["a","i","u","e","o"]]

Avec T=[1,2,3,4,5] et L=[n-5 for n in T]


Quelques boucles sur Les listes

Parcourir une liste:

Parcours des valeurs de la liste

Parcours des indices de la liste

Quelques opérations sur les listes:

Somme des éléments d’une liste


Quelques boucles sur Les listes

Plus grande valeur dans une liste:

Plus petite valeur dans une liste:


Les listes (Tableaux)

Liste de Listes ou matrice:

Définition: Un tableau de NL lignes de NC colonnes est réalisé en


Python en définissant une liste de NL éléments, chaque élément de
cette liste étant une liste de NC éléments.
Exemple: L=[[1,2,3,4,5],[6,7,8,9,10]] est un tableau de 2 lignes de 5
colonnes.
L[0]= [1,2,3,4,5]
L[1]=],[6,7,8,9,10]
Pour obtenir le 1er élément de L[0], je dois taper L[0][0]
pour obtenir la valeur 10 je dois taper L[1][4].
Les Dictionnaires
Définition: Un dictionnaire en Python est une suite de paires (clé :
valeurs) séparées par des virgules et délimitées par des accolades.
Les clés peuvent être des entiers (int), des chaînes de caractères
(str) et même des tuples.
Exemple: d={'clé1':'valeur1','clé2':'valeur2'}
Remarque:
On peut avoir des clés et/ou des valeurs de types différents
Pour ajouter ou modifier des valeurs à un dictionnaire il faut indiquer une
clé ainsi qu’une valeur sous la forme nom_dico[clé]=valeur. Si la clé
existe, sa valeur sera modifiée sinon la combinaison Clé:Valeur sera
ajoutée à la fin du dictionnaire
Pour récupérer une valeur dans un dictionnaire, on utilise la syntaxe:
Nom_Dico[Clé]
Pour supprimer un élément on peut utiliser del nom_dic[clé] ou
nom_dic.pop(clé)
Les Dictionnaires
Comment parcourir un dictionnaire python par une boucle?
Méthode 1: Parcours des clés

Méthode 2: Parcours des clés

La méthode 3: Parcours des valeurs

Il y a aussi la fonction values qui retourne une séquence de


tuples. Chaque tuple contient deux éléments, la clé et la valeur
correspondante.
Sa syntaxe est: nom_dé[Link]()
Les sous programmes
Définition
Un sous-programme est un bloc d’instructions réalisant une certaine
tâche. Il possède un nom et est exécuté lorsqu’on l’appelle. Ainsi, un
script bien structuré contiendra un programme dit principal, et plusieurs
sous-programmes dédiés à des fonctionnalités spécifiques.
Quand le programme principal fait appel à un sous–programme,
il suspend son propre déroulement, exécute le sous–programme en
question, et reprend ensuite son fonctionnement
Utilités:
Eviter la duplication de code
Favoriser la réutilisation
Améliorer la conception: L'idée est très simple à comprendre : on réduit la
complexité d’un programme en le découpant en sous-programmes plus
simples.
Déclaration d’un sous programme
L'implémentation d'un sous programme commence par
le mot clé def, se poursuit par son nom et la liste de ses
paramètres. Un bloc est alors réservé aux instructions de
la procédure, délimité comme d'habitude par un : et
une indentation.
🡪Syntaxe: def nom_fonction(liste de paramètres):
bloc d'instructions
Un sous programme peut être:
Une procédure : Le résultat du sous programme est
généralement exprimé par un print 🡪 il sera affiché lors de
l’appel du sous programme
Une fonction: Le sous programme calcule puis retourne le
résultat au programme principal via l’instruction return.
L’instruction assert

Rôle: Le mécanisme d'assertion est utilisé pour empêcher des


erreurs qui ne devraient pas se produire, en arrêtant
prématurément le programme, avant d'exécuter le code qui aurait
produit une erreur. Si une telle erreur survient, c'est que le
programme doit être modifié pour qu'elle n'arrive plus. En effet, elle
va vérifier que des conditions qui sont censées être satisfaites le
sont effectivement, à l'aide du mécanisme d'assertion proposé par
Python 🡪 Fonction assert
Syntaxe: assert condition, "description erreur ".
L’instruction se compose d'une condition (une expression
booléenne) éventuellement suivie d'une virgule et d'une phrase
en langue naturelle, sous forme d'une chaine de caractères.
L’instruction assert teste si sa condition est satisfaite. Si c'est le
cas, elle ne fait rien, sinon elle arrête immédiatement
l'exécution du programme en affichant éventuellement la
phrase qui lui est associée.
Travail à faire
Ecrire Les fonctions définies ci-dessous
Une fonction Affiche qui prend en argument une liste L et
l’affiche
Une fonction Somme qui prend en argument une liste L et
renvoie la somme de ses valeurs
Une fonction Moyenne qui prend en argument une liste L et
renvoie la moyenne de ses valeurs
Une fonction Max qui prend en argument une liste L et renvoie
la plus grande valeur de la liste
Une fonction PosMin1 qui prend en argument une liste L et
renvoie la première position de la plus petite valeur de la liste
Une fonction Nb_Occ qui prend en argument une liste L et un
entier X et renvoie le nombre d’occurrence (répétition) de X
dans L
Travail à faire
Ecrire Les fonctions définies ci-dessous
Une fonction pos_prem_Occ qui prend en argument une liste L
et un entier X et renvoie la position (l’indice) de la première
occurrence de X dans L
Une fonction pos_dern_Occ qui prend en argument une liste L
et un entier X et renvoie la position (l’indice) de la dernière
occurrence de X dans L

Une fonction dern_pos_max qui prend en argument une liste L


et renvoie la dernière position de la plus grande valeur de la
liste
Une fonction List_Occ qui prend en argument une liste L et un
entier X et renvoie une liste contenant les indices (position) de X
dans L

Vous aimerez peut-être aussi