Académique Documents
Professionnel Documents
Culture Documents
Langage Python
• Langage développé par Guido Von Russom
• Python 0.9 : 1991, Python 1.0 : 1994, python 2.0 : 2000, python 3.0 : 2008 (pour
résoudre pbs de compatibilté) ^ rupture de syntaxe, coexistence de des versions
2 et 3 pendant 10 ans
• Langage de haut niveau ^ syntaxe simple et intuitive à l'aide de mots usuels
(en anglais) et d'opérateurs mathématiques
• Langage de programmation impérative (boucles, tests conditionnels), orienté
objet, permettant aussi la programmation fonctionnelle
• Mutli-plateformes peut être utilisé dans les environnements Unix, Mac-Os,
Windows, Android et iOS
Python
• Installation : https://www.python.org/download
• Si déjà installé : vérifier le numéro de version, qui doit être au moins 3.6
• Il existe beaucoup de distributions alternatives qui incluent Python
ex : Anaconda, qui contient un grand nombre de bibliothèques de calcul scientifique
• IDE : idle, spyder, ...
• Terminal : Interpréteur python : taper python3 ^ Pour exécuter un fichier :
python3 fichier.py
Intérêts
• Grosse base de code : nombreuses librairies : calcul scientifique (numpy,
matplotlib, scipy, ...), web (django, notebooks Jupyter), traitement de données
(pandas, ...)
• notebooks Jupyter : peut associer du code, des graphiques, des visualisations et
du texte dans des notebooks (cahiers) partageables qui s'exécutent dans un
navigateur web
^ favorise les partages et la vitesse de développement
• Types de base très puissants (dictionnaires, ensembles, tableaux numpy, ...)
• Gestion automatique de la mémoire
•
ETC
Différences de syntaxes avec java
• Pas de public class { ... } qui envelope tout le code
• Pas de public static void main(String args[]) { ... } pour la méthode principale
• Booléens : True et False
Opérateurs :
-
// pour la division entière
-
** pour l’exponentiation (a**b ^ ab)
-
not pour la négation
-
and pour le et logique
-
or pour le ou inclusif Ordre de priorité
Pas de point virgule pour séparer les instructions car une seule instruction
par ligne (possibilté de le faire un point virgule !) print() pour afficher à la place
de System.out.println()
Structures de contrôle
• Pas d’accolades pour délimiter des blocs d'instructions
• Tout est basé sur l'indentation : le fait de laisser une marge devant un bloc
d'instructions
- Indentation standard est de quatre espaces, ou une tabulation
• Instructions conditionnelles : if, else, elif Ex : if note>=16:
bloc instructions
elif note>=14:
bloc instructions
else:
bloc instructions
Boucles
• Boucle "tant que" :
- while <condition>: ^ pas de parenthèses autour de la condition
bloc instructions
- Pas d’instruction do ... while !
• Boucle "pour" :
- for element in iterable
- un itérable est une séquence de valeurs que l’on va pouvoir parcourir
- la variable element prend successivement toutes les valeurs que fournit l’itérable
^ utilisation de la fonction native range qui fournit des suites finies d’entiers
range
syntaxe : range(start, end, step)
pour n ≥ 0, range(0,n,1) fournit tous les entiers de 0 inclus à n
exclus
start vaut 0 par défaut, et step
vaut 1 par défaut syntaxe for i in range(10,0,-2):
allégée : range(n) print(i, end=" ")
for i in range(0,10,2): print(i, end=" ") ^ affiche 0 ^ affiche 10 8 6 4 2
2468
break et continue
• Dans une boucle, on peut utiliser les commandes break et continue :
- break sort de la boucle
-
continue poursuit l’itération en revenant « en haut de la boucle », en ignorant ce qu’il
y a derrière
-
i=0
-
while i<10:
print(i, end=" ") ^ affiche 0 1 2 3
i+=1 • A éviter, ces instructions rendent le code
difficilement compréhensible (on peut
if i>3: s’en passer facilement !)
break
continue
print("coucou")
Type list
• Désigne un tableau redimensionnable inhomogène, appelé plus simplement
liste ex : L = [True, 4, 5, 3.0]
• La fonction len donne la longueur d'une liste : len(L) 4
• ^ les listes sont des séquences finies d'éléments, possiblement de types
différents
• On peut construire une liste de plusieurs manières :
-
par la donnée explicite des éléments, entre crochets, séparés par des
virgules
-
par concaténation de listes (à l'aide de +) : [1, 2, 3]+[4, 5, 6] s'évalue en
[1, 2, 3, 4, 5, 6]
-
par l'utilisation de l'opérateur * : [0]*4 crée la liste [0, 0, 0, 0]
Suite
-
par la syntaxe list(iterable) ^ permet
de fabriquer une liste à partir d'un itérable :
• list(range(4)) s'évalue en [0, 1, 2, 3]
Fonctions
• Une fonction est une séquence d’instructions, dépendant de paramètres d’entrée (arguments), et
retournant éventuellement un résultat
séquence d’instructions que l’on peut utiliser plusieurs fois
brique de base d’un problème plus complexe
• Syntaxe :
def mafonction(arg1, arg2, ...):
'''chaîne de documentation décrivant la fonction, qui peut être sur plusieurs lignes,
renvoyée par la commande help(mafonction)"' #facultatif, utile pour la commande 'help'
instructionl
instruction2 return res #facultatif
#retour à une indentation au même niveau que def ^ fin de la fonction
mafonction(5,7) #appel de mafonction avec deux arguments effectifs
Fonctions
• En Python, les fonctions sont traitées comme des objets ^ elles peuvent être :
- stockées dans des structures de données
- utilisées dans des structures de contrôle
^ Correspond à x in L en Python !
Maximum d’une #variante : recherche de l'indice
liste non vide du max
def
def maxi(L): n=len(L) m=L[0] maxi(L)
for i in range(1,n): if L[i]>m: :
m=L[i] m=L[0]
return m imax=0
for i in range(1,len(L)):
^ correspond à max(L) en python if L[i]>m:
m=L[i
imax
=i
return imax
^ correspond à L.index(max(L))
Somme/produit des éléments d’une
liste
def somme(L): def produit(L):
n=len(L) n=len(L)
s=0 p=1
for i in range(n): for i in range(n):
s+=L[i] P*=L[i]
return s return p