Pourquoi ?
Le langage naturel est ambigu et dépend du contexte : « Pierre est refroidi par la bise. »
Les langages de programmation sont des langages formels, développés pour exécuter
des tâches précises répondant à des algorithmes et s'appuyant sur des structures
de données.
Langage de bas niveau :
Langage machine : 11000101 10001101 11000101 11001010
Assembleur : lecture 10 r0
lecture 11 r1
sautpos r1 5 Langage de haut niveau :
inverse r1
soustr r1 r0 a = 20
sautpos r0 5 if (a > 100):
inverse r0 print("a depasse la centaine")
ecriture r0 12 else:
stop print("a ne depasse pas cent")
Python est clair, moderne, extensible, gratuit et libre
multiplateformes (OS, matériel), multiparadigmes
Les paradigmes en programmation
Langage déclaratif Langage impératif
On décrit le quoi On décrit le comment
le problème la structure de contrôle
correspondant à la solution.
- Descriptif (HTML)
- Fonctionnel (LISP, CAML)
- Logique (Prolog)
- Contrainte (les assistants personnels) a=3
l'utilisateur décrit le problème
l'ordinateur le résout
l’idéal à atteindre? répéter 5 fois :
a=a+2
f : x → ajoute 2 à x
afficher a
afficher f(f(f(f(f(3)))))
Immutabilité / Mutabilité
Il y a aussi la programmation orientée objet, événementielle, séquentielle, ...
Le jeu d’instructions de Python
FONCTIONS
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
Callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
Compile() globals() map() reversed() __import__()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
MOTS CLES
False class finally is return
False quit
None continue for lambda try
True exit
True def from nonlocal while
None copyright
and del global not with
NotImplemented license
as elif if or yield
Ellipsis credits
assert else import pass
__debug__
break except in raise
Booléens
OPERATEURS Operation Result
x or y if x is false, then y, else x
x and y if x is false, then x, else y
not x if x is false, then True, else False
Entiers et Flottants Comparaison
Operation Result Operation Meaning
x+y sum of x and y < strictly less than
x-y difference of x and y <= less than or equal
x*y product of x and y > strictly greater than
x/y quotient of x and y >= greater than or equal
x // y floored quotient of x and y == equal
x%y remainder of x / y != not equal
-x x negated is object identity
+x x unchanged is not negated object identity
abs(x) absolute value or magnitude of x
int(x) x converted to integer
Float(x) x converted to floating point
complex(re, im) a complex number with real part re, imaginary part im
c.conjugate() conjugate of the complex number c
divmod(x, y) the pair (x // y, x % y)
pow(x, y) x to the power y
x ** y x to the power y
Turing complet : Python peut calculer tout ce qui est calculable ...
Programmer avec l’éditeur Thonny Estonia
exécuter un programme
arrêter un programme qui ne se termine pas de lui-même
Editeur
saisir un programme
Console
afficher des résultats, lire les erreurs, tester des instructions
https://thonny.org/
Un programme Python shebang
encodage
module math
constante PI
teste si x est pair
liste initialement vide
répète 10 fois avec i allant de 0 à 9
si i est pair
ajoute i et racine de i à la liste
affiche le résultat
La fonction print()
Affiche des données, brutes ou contenues dans des variables, dans l’invite de commande
Très utile pour affichage sommaire ou recherche d’erreur
par défaut le séparateur est un espace
et le caractère de fin de ligne un
retour chariot \n
un calcul stocké dans une variable
affichage d’un texte suivi du contenu de la variable
Données et variables
Les données sont stockées en mémoire et repérées par une adresse
Ces opérations sont effectuées par le langage lors de l’affectation de variables
déclaration d’une plage mémoire la donnée
nommée nom_de_la_variable
l’opérateur d’affectation
Python supporte nativement un très grand nombre de types de données
les fonctions peuvent être
la fonction type() permet
composées
de connaître le type d’une donnée
Conditions les deux points indiquent
le bloc d’instruction à exécuter
l’indentation (4 espaces)
marque le bloc d’instruction
si la première condition est vraie
sinon si la seconde condition est vraie
Opérateurs de comparaison
Operation Meaning
< strictly less than
<= less than or equal
> strictly greater than
>= greater than or equal
sinon (dans le cas où toutes les conditions == equal
précédentes sont fausses) != not equal
is object identity
is not negated object identity
Un test simple peut ne comporter que if
Boucles bornées
la variable couleur va contenir
à chaque étape
chaque élément de la liste
(se lit : pour chaque couleur de a)
i est une variable compteur
que l’on peut utiliser
(se lit : pour i allant de 0 à 5
exclu, donc 4)
Le balayage peut se faire
aussi par indexation
i peut aussi servir pour des traitements
ou des calculs
Boucles non bornées
la boucle se répète tant que
la condition est vraie
(se lit :
tant que Vrai
tant que i est ≤ à 5)
initialisation du compteur
et incrémentation
La boucle while est la boucle universelle
Elle peut remplacer toutes les autres formes (for, repeat until, …)
Certains langages n’utilisent que la boucle while
Définition des fonctions
définition de la fonction paramètres d’entrée
(aucun jusque indéterminé)
paramètres de sortie
(aucun, dans ce cas None,
jusque indéterminé)
appel de la fonction avec les paramètres d’entrée
les paramètres de sortie sont éventuellement stockés dans des variables
pour être utilisés ou affichés
Utilisation des modules de fonctions
un module de fonctions mathématiques
appel de la fonction racine carrée
du module math
pour simuler des nombres aléatoires
avec une machine qui ne l’est pas
AUTRES FORMES
pour apprendre à programmer
avec la géométrie et le dessin
Nombres et caractères
Structures de données
Structures de données
Compléments sur la fonction print()
Affiche des données, brutes ou contenues dans des variables, dans l’invite de commande.
Très utile pour affichage sommaire ou débogage
par défaut le séparateur est un espace
et le caractère de fin de ligne un
retour chariot \n
juste pour aller à la ligne dans le code
(pour les lignes trop longues visuellement
des \n pas forcément utile)