Bases de Python

Commentaires

Les commentaires sont ajoutés grâce au caractère #.

# Ceci est un commentaire.
x = 2  # Ceci est aussi un commentaire.

Affichage à la console

La fonction print permet d'afficher une valeur dans la console. La fonction prend en argument la valeur à afficher.

print("Hello World !")  # Affiche Hello World !.
print(1 + 1)  # Affiche 2.

Types de données

Type Exemples
Entier 0, 1, 5, 317, -4
Nombre à virgule flottante 0.5, 3.14, 2.71828
Booléen True, False
Chaîne de caractères "Hello World !", ""
Tuple (0, 0, 0), (127, 0, 255)
Liste [1, 2, 3], []

Opérateurs

Opérations arithmétiques

Opérateur Opération
+ Addition
- Soustraction
* Multiplication
/ Division
// Division entière
% Modulo, reste de la division
** Puissance

Opérations de comparaison

Opérateur Opération
== Égal
!= Différent
< Plus petit
<= Plus petit ou égal
> Plus grand
>= Plus grand ou égal

Opérations booléennes

Opérateur Opération
not Négation
and Conjonction
or Disjonction

Opérations bit-à-bit

Opérateur Opération
& Et
| Ou
^ Ou-exclusif
<<  Décalage à gauche
>> Décalage à droite

Variables

On utilise le signe = pour assigner une valeur à une variable.

x = 3 + 4

Dans une expression, une variable a pour valeur la dernière valeur qui lui a été assignée.

x = 3 + 4
print(x)  # Affiche 7.

À noter qu'il est possible d'assigner une variable plusieurs fois, et même de faire référence à la valeur courante d'une variable pour déterminer la valeur à affecter.

x = 3 + 4
x = x + 1
print(x)  # Affiche 8.

Raccourci de notation

Souvent, on se retrouve à assigner à une variable une valeur qui est simplement le résultat d'une opération sur la valeur courrante et un autre argument. Par exemple :

x = x + 1
y = y // 2

Dans ce genre de cas, il est possible d'utiliser un raccourci de notation :

x += 1
y //= 2

Structures de contrôle

Si

La structure if permet d'exécuter des instructions uniquement lorsqu'une expression de condition évalue à True.

if x == 1:
    x += 1
    print(x)

Il est possible d'utiliser le mot clé else pour indiquer les instructions à effectuer dans le cas contraire :

if x % 2 == 0:
    x //= 2
else:
    x *= 3
    x += 1

Le mot clé elif permet de tester une autre condition en cas d'échec des conditions précédentes :

if langue == "fr":
    print("Bonjour !")
elif langue == "en":
    print("Hello!")
elif langue == "de":
    print("Guten Tag!")
elif langue == "it":
    print("Buongiorno!")
else:
    print("???")

Tant que

La boucle while permet d'exécuter en boucle un bloc d'instruction tant qu'une condition est vraie. Entre chaque exécution du bloc, la condition est réévaluée: en cas de valeur True la boucle continue, en cas de valeur False la boucle se termine.

# Affiche les entiers de 100 à 1.
x = 100
while x > 0:
    print(x)
    x -= 1

Si initialement la condition est fausse, alors aucune itération n'est effectuée.

# N'affiche rien du tout.
x = -4
while x > 0:
    print(x)
    x -= 1

Lorsque que la condition de la boucle while est toujours vraie, la boucle s'exécute sans arrêt. On parle dans ce cas de boucle infinie.

# Affiche Encore ! en boucle.
while True:
    print("Encore !")

Pour stopper l'exécution d'un programme pris dans une boucle infinie, il est possible d'utiliser la combinaison de touches ctrl-c.

Pour tout

La boucle for peut être utilisée pour exécuter un bloc d'instruction pour chaque entier compris entre 0 et une borne supérieure. Le bloc est exécuté pour la borne inférieure (ici 0), mais pas pour la borne supérieure.

# Affiche les nombres de 0 (compris) à 10 (non compris).
for i in range(10):
    print(i)

Il est aussi possible de donner une valeur à la borne inférieure.

# Affiche les nombres de 10 (compris) à 20 (non compris).
for j in range(10, 20):
    print(j)

La boucle for peut aussi être utilisée pour parcourir tous les éléments d'une liste.

animaux = ["Chiens", "Chats", "Tortues", "Hamsters"]
for animal in animaux:
    print(animal)

Fonctions

Il est possible de définir ses propres fonctions en faisant appel au mot clé def. Lors de la définition de fonction, on indique aussi les paramètres de la fonction.

def dit_bonjour(prenom, poli):
    if poli:
        print("Bonjour " + prenom + " !")
    else:
        print("Yo !")

La fonction contient une série d'instructions qui seront exécutée à l'appel de la fonction. Lors de l'appel de la fonction, chaque paramètre est renseigné :

# Affiche Bonjour Amélie !
dit_bonjour("Amélie", True)

# Affiche Yo !
dit_bonjour("Bruno", False)

La fonction peut contenir une instruction return, qui termine immédiatement l'exécution de la fonction et indique la valeur de retour.

def valeur_absolue(x):
    if x < 0:
        return -x
    else:
        return x

La valeur de retour détermine la valeur l'appel de la fonction dans l'expression dans laquelle elle apparaît.

# Affiche 6.
print(valeur_absolue(-4) + 2)

Modules

On utilise les mots clés from et import pour importer des définitions d'un module.

from PIL import Image

Il est aussi possible d'importer toutes les définitions d'un module sans les lister explicitement.

from galois import *

Il est aussi possible d'utiliser import seul. Dans ce cas, les définitions issues du modules doivent être référée en les préfixant du nom du module suivant d'un point (.).

import sys
# Quitte le programme.
sys.exit(0)

Séquences

Les chaînes de caractères, les listes et les tuples représentent des séquences de valeur.

Longueur

La longueur d'une séquence s'obtient grâce à la fonction len.

coords = (4, 5)
print(len(coords))  # Affiche 2.

animaux = ["Chiens", "Chats", "Tortues", "Hamsters"]
print(len(animaux))  # Affiche 4.

message = "Bonjour !"
print(len(message))  # Affiche 8.

Indexation

Il est possible de faire référence à une certaine valeur dans la séquence via son index. Le premier index est 0, le dernier correspond à la taille de la séquence moins 1.

animaux = ["Chiens", "Chats", "Tortues", "Hamsters"]

animal_prefere = animaux[1]

print(animal_prefere) # Affiche Chats.
print(animal_prefere[0]) Affiche C.

Pour les listes (mais pas pour les chaînes de caractères ni pour les tuples), il est possible de réassigner la valeur contenue à un certain index.

animaux = ["Chiens", "Chats", "Tortues", "Hamsters"]

animaux[3] = "Lapins"

print(animaux[0])  # Affiche Chiens.
print(animaux[3])  # Affiche Lapins.

Images avec Pillow

La librairie Pillow de Python permet de créer et manipuler des images.

Import de Image

Pour avoir accès à la classe Image, il faut importer sa définition depuis le module PIL :

from PIL import Image

Création d'image

La méthode new permet la création d'une image à partir de zéro.

largeur = 120
hauteur = 240
image_rouge = Image.new("RGB", (largeur, hauteur), (255, 0, 0))

La méthode open permet de charger une image depuis un fichier.

image_photo = Image.open("chemin/vers/ma_photo.jpg")

Affichage d'images

La méthode show permet l'affichage d'une image à l'écran.

image_rouge.show()

Sauvegarde d'images

La méthode save permet de sauvegarder une image dans un fichier.

image_rouge.save("chemin/vers/fichier.jpg")

Manipulation des pixels

La couleur des pixels d'une image peut être obtenue grâce à la méthode getpixel. La méthode prend un seul argument, qui est un tuple de deux entiers qui représentent les coordonnées \(x\) et \(y\) du pixel. L'origine (0, 0) correspond au coin supérieur gauche de l'image.

# Affiche la couleur du 6ième pixel de la première ligne,
# c'est-à-dire (255, 0, 0).
print(image_rouge.getpixel((5, 0)))

La couleur d'un pixel peut être modifiée grâce à la méthode putpixel :

# Modifie le 3ième pixel de la 10ième ligne
# pour y afficher du bleu.
image_rouge.putpixel((2, 9), (0, 0, 255))