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

Cours1 Rappels

Le document présente un aperçu du langage Python, ses caractéristiques, avantages et inconvénients, ainsi que des conventions de codage. Il aborde également la structure d'un script Python, les structures de contrôle, les types de données, et les listes. Enfin, il fournit des exemples pratiques pour illustrer l'utilisation de Python dans la programmation.

Transféré par

Kieutung Lam
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)
3 vues36 pages

Cours1 Rappels

Le document présente un aperçu du langage Python, ses caractéristiques, avantages et inconvénients, ainsi que des conventions de codage. Il aborde également la structure d'un script Python, les structures de contrôle, les types de données, et les listes. Enfin, il fournit des exemples pratiques pour illustrer l'utilisation de Python dans la programmation.

Transféré par

Kieutung Lam
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

1 - Rappels Python

INF2 – P26
1 – Langage Python
1.1 – LANGAGE PYTHON
1.2 – POURQUOI PYTHON?
1.1 – Langage Python

Créa%on de Python en 1989 par Guido Van Rossum. Son nom vient des Monty
Python
Langage interprété (et non compilé)
Caractéris%ques :

• Open-source
• Orienté objet
• Compact
• Typage dynamique Python 3.13
• Ges%on des excep%ons les version [Link] ne sont pas pas de compatibles avec les versions 2.x
[Link]
[Link]

INF2 - P26 COURS 1 - RAPPELS


1.2 – Pourquoi Python ?
AVANTAGES INCONVENIENTS
•Nombreuses bibliothèques :
• scienIfiques, web, jeux, bases de données, •Pas adapté au temps-réel (excepté quelques
visualisaIon, embarqué, machine bibliothèques codées en C)
learning...
•Très peu pédagogique
•Bien adapté au prototypage
•Code difficile à maintenir
•Facile d’uIlisaIon
•Programmeur très libre

INF2 - P26 COURS 1 - RAPPELS


1.2 – Pourquoi Python ?
CONVENTION
Les PEP : recommandations, conventions
Exemple = PEP8 : Style Guide for Python Code [Link]

Exemple

Nomage des iden2ficateurs


• snake_case : variables , fonc=ons , méthodes, constantes (majuscules)
• CamelCase : Classes , Excep=ons, Types

TUTORIEL
En francais [Link]

INF2 - P26 COURS 1 - RAPPELS


2 – Ecriture d’un
programme
2.1 – NOTION DE SCRIPT
2.2 – STRUCTURES DE CONTRÔLE
2.1 – Script python
Un script Python est un fichier contenant un programme.
Le nom du fichier a l’extension .py

sequence_instruc+[Link]
Langage interprété :
a = 3 # affectation
possibilité d’exécuter instruc=on par print(a)
instruc=on : a += 1 # affectation a = a + 1
print(a)
- console b = a * 3 # affectation
- notebook print(b)
b= b + 2 * 3 # priorité des opérateurs
- fichier print(b)
print(c) # toute variable consultée doit avoir été
# initialisée

INF2 - P26 COURS 1 - RAPPELS


2.1 – Script python
Dans un script python, la fonction main() est la fonction principale.
[Link]
#définition de la fonction principale
def main():
a = 5 # affectation
print("a vaut ", a) # affichage
a = 'toto' # affectation
print("a vaut ", a) # affichage

#appel de la fonction main du programme courant


main()

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
• Notion de bloc : indentation
• Alternatives : if, if else, if elif else
• Boucles : while, for

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
No)on de bloc
alignement des instruc:ons les unes sous les autres : (indenta:ons PEP : 4 espaces)

Exemple
def ma_fonction():
ma_variable = 3 # instruction dans le bloc de la fonction
LA_CONSTANTE = 3.14 # instruction dans le bloc de la fonction

la_temperature = 3.5 # à cause de l'indentation cette instruction n’est pas dans la


fonction

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle

[Link] SYNTAXE
(structure de contrôle condi:onnelle) #simple
if condition :
il existe plusieurs variantes : instruction-alors

- simple (si alors ) #normale


if condition :
instruction-alors
- normale (si alors sinon) else :
instruction-sinon
- composée (si alors sinon si alors ... sinon)
#composée
if <condition 1> :
instruction-alors-1
else :
if <condition 2> :
instruction-alors-2
else:
instruction-sinon-1

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
EXEMPLE
[Link]
#simple
(structure de contrôle condi:onnelle) if x > 0:
print(x,' positif’)
il existe plusieurs variantes :
#normale
- simple (si alors ) if x > 0:
print(x,' positif')
- normale (si alors sinon) else :
print(x,’ négatif’)
- composée (si alors sinon si alors ... sinon)
#composée
if x > 0:
print(x,' positif')
else :
if x == 0:
print(x,' nul')
else:
print(x,’ négatif')

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Alterna(ves
-composée (si alors sinon si alors ... sinon) : SYNTAXE
#composée
simplifica>on avec : if elif else if <condition 1> :
instruction-alors-1
EXEMPLE elif <condition 2> :
instruction-alors-2
elif <condition 3> :
x = int(input('entrer une valeur: ')) instruction-alors-3
if x > 0: …
print(x,' positif') else :
elif x == 0: instruction-sinon-n
print(x,' nul')
else:
print(x,' negatif')

Chaque instruc>on dans l’alterna>ve peut être un bloc d’instruc>on

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
SYNTAXE
Boucles : (structures de contrôle itéra2ves) #boucle for
for element in <itérable>:
Les boucles perme8ent de répéter un certain nombre instructions-boucle
de fois le même code.
Il faut toujours d'assurer que la boucle ne s'exécute pas #boucle while
de manière infinie. while <condition>:
instructions-boucle

Il existe plusieurs boucles :


• boucle for : le nombre d'itéraIons est connu avant de EXEMPLES
rentrer dans la boucle
• boucle while : le nombre d'itéraIons dépend du code
exécuté dans la boucle

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Boucles : (structures de contrôle itératives) range()
Les boucles for s'effectuent sur des itérables
(listes , ensembles, tuples, dictionnaires, chaines for i in range(0,10,1):
de caractère). print(i)

Le type range représente une séquence list(range(10))


immuable de nombres et est couramment [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
uIlisé pour itérer un certain nombre de fois
dans les boucles for. list(range(1,11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
class range(stop)
class range(start, stop[, step])

start stop step sont des enIers


[Link] - the-range-function

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Equivalence entre la boucle for et la boucle while

Boucle while équivalente


Boucle for
#step positif
for i in range(start, stop, step) : i = start
instructions de boucle while (i < stop) :
instructions de boucle
i+= step # incrémente i

#step négatif
i = start
while (i > stop) :
instructions de boucle)
i+= step # décrémente i

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Boucles imbriquées :
Il est possible d’imbriquer les boucles Exemples

for i in range(1, 10):


for j in range(1, 10 - i):
A7en8on aux indenta8ons print(" ", end="")
for j in range(0, i):
print(i, end="")
for j in range(0, i - 1):
print(i, end="")
print()

ne va pas à la ligne

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Boucles imbriquées :
Il est possible d’imbriquer les boucles Exemples

for i in range(1, 10):


for j in range(1, 10 - i):
A7en8on aux indenta8ons print(" ", end="")
for j in range(0, i):
print(i, end="")
for j in range(0, i - 1):
print(i, end="")
print()

ne va pas à la ligne

INF2 - P26 COURS 1 - RAPPELS


2.2 – structures de contrôle
Une boucle doit être lisible.

Il existe de nombreuses façons d’interrompre une boucle : aDenEon de ne pas en abuser


L'instrucEon break permet de sorEr de la boucle.
L'instrucEon continue passe à l'itéraEon suivante.

INF2 - P26 COURS 1 - RAPPELS


3 – Les types de
données
3.1 – TYPES DE BASE
3.2 – LES LISTES
3.3 – LES DICTIONNAIRES
3.4 – LES AUTRES TYPES ITERABLES
3.1 – Types de base
types simples et opé[Link] EXEMPLE

Il existe 5 grands types de variables : x = 3 # type int


y = -2.5 # type float
• int (nombre en6er) prenom = 'Emilien’ # type str
• float (nombre décimal) nom = "Durand » # type str
flag = True # type bool
• str (string : chaine de caractères) compl = 5 +3j # type complex
• bool (booléen)
• complex (complexe)
Il n'est pas nécessaire de définir le type d'une variable avant de l'u6liser

Selon le type on peut appliquer des opérateurs arithmé6ques, logiques, de


comparaison etc.. (voir les exemples)

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
les listes (list)
Une liste est une collec,on d'éléments séparés par des virgules, l'ensemble est entre [ ].
Elle est modifiable dynamiquement (mutable).
Elle est comparable à un tableau mais peut contenir des éléments de types différents.
Fonc,on na,ve list()
EXEMPLE

liste = []
liste0 = ["chaine1", 1, 3.4, -56, 5 +3j, 'chaine2’]
# création d'une liste par énumération des valeurs
liste1 = ["nf01", "sr06", "la14", "inf2"]
# création d'une liste par conversion de la sortie de la fonction range()
liste2 = list(range(1, 15))

Ajout d’un élément dans une liste : [Link](valeur)

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
Accès aux éléments et extraction
Chaque élément d'une liste est indicé par un en>er compris entre 0 et N-1 (N = nombre d’éléments
dans la liste).
On peut donc y accéder de la manière suivante : liste[indice].
Si l’indice est néga>f, -1 est l’indice du dernier élément de la liste, -N le premier
EXEMPLE
liste1 = ["nf01", "sr06", "la14", "inf2"]
print("le premier élément est ", liste1[0])
print("le dernier élément est ", liste1[len(liste1)-1])
print("le dernier élément est ", liste1[-1])
print("l'avant-dernier élément est ", liste1[-2])
On peut extraire une par>e :
•liste[min:max] de l'indice min jusqu'à max-1
• liste[min:] de l'indice min jusqu'au dernier élément
• liste[:max] de l'indice 0 jusqu'à max-1
•liste[min:max:pas] de l'indice min jusqu'à max-1 avec un pas

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
Listes de listes
Les éléments d’une liste peuvent être des listes
EXEMPLE
#liste de listes
tab2d = [[1,2,3], [4,5,6],[7,8,9]]
print(tab2d[1][1])
print(tab2d[0])
Opérateurs sur les listes print(len(tab2d))

+ : concaténaAon
* : duplicaAon

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
Il existe de nombreuses méthodes sur les listes :
•append(valeur) : ajout de la valeur à la fin de la liste
•sort() : tri
•reverse() : inverse
•remove(valeur) : enleve la valeur de la liste
•clear()
•copy()
•count(valeur) : compte le nombre d'occurences de valeur
•pop() : enlève et retourne le dernier élément de la liste
•sum() : calcule et retourne la somme des éléments de la liste
Quelques fonctions sur les listes
len()
del()
min()
max()
print()
dir()
INF2 - P26 COURS 1 - RAPPELS
3.2 – Les listes
EXEMPLE

tab2d = [[1,2,3], [4,5,6], [7,8,9]] # liste composée de 3 listes


print("longueur", len(tab2d)) # fonction qui retourne la longueur
[Link]('toto') # ajout d’un élément à une liste
print("liste apres ajout ", tab2d) # affichage de la liste
print("longueur",len(tab2d))
tab2d[0].reverse() # inverse le premier élément de tab2d (donc la liste [1,2,3]
print("liste apres inversion du premier élément ",tab2d)

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
EXEMPLE

tab2d = [[1,2,3], [4,5,6],[7,8,9]] # liste composée de 3 listes


print("longueur", len(tab2d)) # fonction qui retourne la longueur
[Link]('toto') # ajout d’un élément à une liste
print("liste apres ajout ", tab2d) # affichage de la liste
print("longueur",len(tab2d))
tab2d[0].reverse() # inverse le premier élément de tab2d (donc la liste [1,2,3]
print("liste apres inversion du premier élément ",tab2d)

INF2 - P26 COURS 1 - RAPPELS


3.2 – Les listes
Copie de listes
l'opérateur = effectue une copie d'adresse (lien) mais pas une copie de liste. Il faut utiliser la méthode
copy() ou deepcopy()

Parcours de listes
Les listes sont des itérables. Les boucles for sont tout à fait adaptées au parcours de liste
for item in liste :
print(item)
Unpacking
On peut déballer (unpack) une liste a,b,c,d = liste1

Compréhension de listes
Cette technique permet d'appliquer un traitement sur une liste pour en créer un autre dans une syntaxe réduite.
La syntaxe est :
nouvelle_liste = [fonction(item) for item in liste if condition(item)]

INF2 - P26 COURS 1 - RAPPELS


3.3 – Les dic+onnaires
les dictionnaires (dict)
Très utilisé en Python : ensemble entre accolades, de couples clé:valeur séparés par
une virgule.
Le premier élément du couple est la clé et le second est la valeur.
La clé est unique . C'est équivalent à une table associative dont l'accès s'effectue par un
index qui est la clé.
Fonction native dict()
EXEMPLES
mon_dico = {"Pierre": 34, "Marine": 34, "Kevin": 36, "Claire": 18, "Jose": 51}
print(mon_dico)
{'Pierre': 34, 'Marine': 34, 'Kevin': 36, 'Claire': 18, 'Jose': 51}

# création d'un dictionnaire avec compréhension de liste


dico_triple = dict([(x, x ** 3) for x in range(1, 11)])
print(dico_triple)
{1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729, 10: 1000}
COURS 1 - RAPPELS

INF2 - P26 COURS 1 - RAPPELS 29


3.3 – Les dictionnaires
La notion d’indice n’existe pas dans un dictionnaire, on accède à une valeur par sa clé

dictionnaire[cle] -> valeur

EXEMPLES

COURS 1 - RAPPELS

Ajout d’un élément dans un dic>onnaire : dictionnaire[cle] = valeur

INF2 - P26 COURS 1 - RAPPELS 30


3.3 – Les dictionnaires
Les dic(onnaires sont des itérables (par défaut sur les clés) .
EXEMPLES

Il existe de nombreuses méthodes pour accéder et manipuler les composantes d'un dic(onnaire:
• keys()
EXEMPLES
• values()
• items()
• get(key, default)
COURS 1 - RAPPELS

INF2 - P26 COURS 1 - RAPPELS 31


3.4 – Autres types itérables
les N-uplets (tuple)
Type itérable mais pas mutable (modifiable).
Permet de construire une collection d'éléments séparés par une virgule et l'ensemble est
entre ()
Fonction native tuple()

Accès par indice


EXEMPLE
tuple1= (5, '3', 'toto')
tuple2 = (5,) # attention si le tuple est de
# longueur 1 il faut maintenir la virgule

INF2 - P26 COURS 1 - RAPPELS


3.4 – Autres types itérables
les ensembles (set)
structure de données très proche des listes mais sans doublons. La liste des valeurs est
donnée entre {}.
Les ensembles sont des itérables.
EXEMPLE

Fonction native set()

Ajout d’un élément dans un ensemble : [Link][(valeur)

INF2 - P26 COURS 1 - RAPPELS


3.4 – Autres types itérables
Les chaines de caractères (str)
C'est un itérable pour lequel chaque élément est un caractère. EXEMPLE
Les caractères sont mis entre " " ou ' ‘. ch1= 'Bonjour'
ch2='au revoir'
Les méthodes/fonctions pour accéder et manipuler les print([Link]())
composantes d’une chaine sont nombreuses. En voici quelques print(ch2)
unes : ch3=ch1+ch2
print(ch3)
ch4 = ch3[3:8]
.lower() print(ch4)
.upper()
.capitalize() # modifie le 1er caractère
.split(séparateur)
On peut additionner 2 chaines, extraire une sous-chaine par les
valeurs d'indices ...

INF2 - P26 COURS 1 - RAPPELS


3.4 – Autres types itérables
Création de chaines
Création de chaines à partir des contenus de variables :

§ méthode format()
§ f-string (récente)
§ % (ancienne)

EXEMPLE
x= 3.4
y= -5
chaine1 = "x = {} et y = {}".format(x,y) # methode format()
chaine2 = f'x = {x} et y = {y}' # f-string (plus moderne)
chaine3 = " x = %f et y = %d" % (x,y) # utilisation des % (plus ancienne)

INF2 - P26 COURS 1 - RAPPELS


3.5 – Parcours des itérables
méthodes de parcours des itérables

Selon les types , plusieurs fonctions utilisables dans les boucles for permettent de
parcourir les itérables :

- enumerate() # retourne position et valeur


- zip() # sur 2 séquences en même temps
- sorted() # ordonne avant la boucle
- set() # élimine les doublons
….

INF2 - P26 COURS 1 - RAPPELS

Vous aimerez peut-être aussi