Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

tour d’horizon rapide du langage Python

commentaires

tout ce qui est après un # est un commentaire,
et sera ignoré par l’interpréteur Python

100

importer une librairie

de nombreuses fonctionnalités ne sont pas dans le langage Python
elles sont disponibles dans des bibliothèques (en Python on dit un module) qu’on doit importer

La première manière de coder est de réutiliser l’existant !

utiliser une librairie

une bibliothèque expose typiquement un certain nombre de symboles
par exemple dans math on va trouver

pour accéder à ces symboles on utilise la notation .

3.141592653589793
-1.0

nombres

10
3.14
(-4+2j)
True
True

précision des calculs flottants

bien sûr un flottant est représenté, en informatique, comme une suite de bits 0 ou 1
cela induit des calculs avec une précision imparfaite

0.30000000000000004
False
True
True

précision des calculs flottants

optionnel

la façon de passer d’un flottant à une séquence de bits
s’appelle un encodage dans le cas des flottants: IEE754
qui est efficace car supporté par le processeur

pour faire court - dans le cas le plus courant (binary64)
la précision des calculs est de l’ordre de 10-15

voir un convertisseur en ligne pour visuels

définir une variable

pour définir une variable, il suffit de l’affecter avec le signe =

20

texte (chaînes de caractères)

bonjour le monde
bonjour le monde
Python est un langage "typé"
Python est un langage 'typé'

print()

remarquez qu’on a utilisé la fonction print qui est prédéfinie
on peut l’appeler avec autant d’arguments qu’on veut
et de n’importe quel type

la somme de 12 et 13 vaut 25

formatage

pour construire des chaines lisibles,
le plus simple est la f-string

'une f-string'
pi = 3.141592653589793
pi = 3.141592653589793 et sin(pi) = 1.2246467991473532e-16

formatage - plus finement

il y a des tas de possibilités pour affiner la façon
dont les données sont mises en forme
pour cela ajouter un format dans les {} avec un :
par exemple pour afficher deux chiffres après la virgule :

bla 6.28 bla

fonctions

on définit une fonction avec le mot-clé def

vous remarquez que le code de la fonction est indenté
en effet python utilise l’indentation pour déterminer le bloc auquel appartient une instruction

132
6

instructions

conditions, branchements, boucles ... Python a tout un ensemble d’instructions pour contruire vos programmes

12 est pair

python utilise l’indentation pour déterminer le bloc auquel appartient une instruction

3
2
1
# à éviter d'exécuter ...
x = 3
while x != 0:
    print(x)
x = x-1

à quel bloc appartient x = x-1

itérations

parmi les instructions du langage, il y a la boucle for qui joue un rôle un peu à part (notion d’itérateurs et générateurs notamment)

1
2
3
pierre -> 20
jean -> 32

blocs

les blocs sont délimités par indentation, il n’y a pas de syntaxe de bloc à-la c avec des {...}
ce qui rend les codes un peu plus lisibles

mots clés

un certain nombre de mots sont réservés au langage;
ce sont les “mots-clé” du langage
on ne peut pas les utiliser comme noms de variable

# ceci provoque une erreur
if = 2

  File "<ipython-input>", line 3
    if = 2
       ^
SyntaxError: invalid syntax
liste    
Falseawaitelseimportpass
Nonebreakexceptinraise
Trueclassfinallyisreturn
andcontinueforlambdatry
asdeffromnonlocalwhile
assertdelglobalnotwith
asyncelififoryield

importer des symboles (variables, fonctions...)

on peut aussi faire comme ceci

3.141592653589793
1.2246467991473532e-16

Préférez savoir d’où viennent les fonctions que vous utilisez.
C’est pourquoi on vous recommande fortement d’utiliser la forme math.sin plutôt que sin, qui garde la trace du module d’où provient le symbole sin.

On peut renommer une librairie
par exemple pour en raccourcir le nom

np.float64(1.2246467991473532e-16)

Remarquez qu’ici on devrait obtenir 0, mais les calculs sur les flottants sont faits de manière approchée.

containers

listes, ensembles, dictionnaires ... Python vous permet de définir des containeurs d’objets

[10, 20, 10, 20, 10, 20]
{10, 20}
{'dix': 10, 'vingt': 20}
10 20
10
False

pour les modifier

['il', 12, 78.5, False, 'il', 'bonjour']
{False, 12, 'bonjour', 78.5, 'il'}
{'zero': 0, 'un': 1, 'trois': 3, 'deux': 2}

len()

il existe une fonction prédéfinie très pratique: len()
qui retourne la longeur d’un objet (le nombre d’éléments qu’il contient)

3
3
3

textes plus longs

si vous avez besoin d’écrire des textes de plusieurs lignes
utilisez """ au lieu de " -- (ou ''')

To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
a
b
3

types

pas besoin de préciser le type d’un objet, Python le déduit tout seul
tout a un type: les variables, les fonctions les modules ...

int
float
bool
function
builtin_function_or_method
module

écrire dans un fichier

en 3 étapes: on ouvre un fichier, on écrit dedans et on ferme le fichier

cette première façon de faire c’est la version ‘pédestre’ mais c’est très old-school, et pas du tout recommandé; on la montre juste pour bien décortiquer ce qui est fait

la bonne façon de faire, c’est celle-ci:

on peut aussi utiliser print(des, trucs, file=f) plutôt que write

lire le contenu d’un fichier

To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,Or to take Arms ...
To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,Or to take Arms ...

définir de nouveaux types - avancé

on peut introduire dans Python de nouveaux types de données

vous avez besoin d’objets de type rationnel ?
construits à partir d’un numerator et d’un denominator ?
avec des fonctions de réduction et d’affichage ?

r = Rational(2, 4)
r.reduce()
print(r) # affiche 1/2
2/4
<__main__.Rational at 0x7ff46cb32ba0>

type prédéfinis

int, bool, float, str, list, dict, set ... tous ces types sont eux même définis par des classes
et donc tous ces types ont aussi des méthodes ...

0
[12, 13]
'Bonjour'

deux méthodes très utiles sur les chaines : split et join

['une', 'liste', 'de', 'mots', 'à', 'découper']
'une+liste+de+mots+à+découper'

python ... et la question du style

tout code Python est censé obéir à un style très précis décrit ici https://www.python.org/dev/peps/pep-0008/

Pourquoi ?

parce que, comme le dit Guido Van Rossum un code est beaucoup plus souvent lu qu’il n’est écrit
aussi est-il important s’assurer la lisibilité et la cohérence de vos codes

objets et types

optionnel

Python est orienté objet; ça signifie que:

float
list
module
function
NoneType
type