Tutoriel pour Python
Acte I
Voici les principales structures de données et de contrôle en Python :
1. Variable
x = 6
2. Liste
my_list = [1, 2, 3, 4, 5]
3. Tuple
my_tuple = (1, 2, 3, 4, 5)
4. Dictionnaire
my_dict = {'a': 1, 'b': 2, 'c': 3}
5. Ensemble (Set)
my_set = {1, 2, 3, 4, 5}
6. Condition if-elif-else
x = 10
if x > 10:
print("x est supérieur à 10")
elif x == 10:
print("x est égal à 10")
else:
print("x est inférieur à 10")
7. Boucle For
for i in range(5):
print(i)
8. Boucle While
i = 0
while i < 5:
print(i)
i += 1
10. Fonction
def add(a, b):
return a + b
11. Classe
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} dit Woof!")
# Instanciation d'un objet de la classe Dog
mon_chien = Dog("Rex", 3)
# Appel de la méthode bark sur l'objet
mon_chien.bark()
Dans ce code :
- La méthode `__init__` est le constructeur en Python.
Elle initialise les attributs `name` et `age` de l'objet.
- La méthode `bark` affiche un message contenant le nom du chien.
- L'objet `mon_chien` est créé en appelant `Dog("Rex", 3)`,
ce qui initialise un chien nommé "Rex" âgé de 3 ans.
- La méthode `bark` est ensuite appelée sur l'objet
`mon_chien`, ce qui affiche "Rex dit
Woof!" dans la console.
Acte II
Plus de détails sur ces éléments.
12. Accéder à un champs d'un dictionnaire
Pour accéder à un champ spécifique d'un dictionnaire, vous pouvez utiliser la clé correspondante, comme ceci :
[guest@localhost]$ python3
Python 3.9.2
>>> my_dict = {'a': 1, 'b': 2, 'c': 3}
>>> my_dict['a']
1
>>> my_dict['b']
2
Avec cette syntaxe, nous accédons à la valeur associée à une clé dans le dictionnaire.
13. Accéder à un élément d'un tuple
Pour accéder à un élément spécifique d'un tuple en Python, vous utilisez
l'index de cet élément. Voici comment faire :
my_tuple = (1, 2, 3, 4, 5)
# Accès à l'élément à l'index 0
element_0 = my_tuple[0]
print(element_0) # Output: 1
# Accès à l'élément à l'index 2
element_2 = my_tuple[2]
print(element_2) # Output: 3
Vous utilisez simplement la syntaxe `nom_du_tuple[indice]` pour accéder à
l'élément à cet indice dans le tuple. Notez que les indices des tuples
commencent à 0.
14. Fonctionnement d'un Set
En Python, un ensemble (set) est une collection non ordonnée d'éléments
uniques. Voici quelques points clés sur le fonctionnement d'un ensemble en
Python :
1. Éléments uniques : Un ensemble ne peut contenir qu'une seule instance
de chaque élément. Si vous tentez d'ajouter un élément déjà présent dans
l'ensemble, il ne sera pas ajouté une seconde fois.
2. Non ordonné : Contrairement à une liste, les éléments d'un ensemble
n'ont pas de position définie. Vous ne pouvez pas accéder aux éléments d'un
ensemble par leur index.
3. Mutable : Les ensembles sont des structures de données mutables, ce
qui signifie que vous pouvez ajouter ou supprimer des éléments après leur
création.
4. Support des opérations ensemblistes : Les ensembles en Python
prennent en charge les opérations ensemblistes telles que l'union,
l'intersection, la différence, etc.
Voici un exemple d'utilisation d'un ensemble en Python :
my_set = {1, 2, 3, 4, 5}
# Ajout d'un élément
my_set.add(6)
# Suppression d'un élément
my_set.remove(3)
# Vérification de l'appartenance
print(2 in my_set) # Output: True
# Boucle à travers les éléments
for item in my_set:
print(item)
En résumé, les ensembles en Python sont utiles lorsque vous avez besoin de
stocker une collection d'éléments uniques et que l'ordre des éléments n'a pas
d'importance.
15. Différents types de boucle for en python
Voici plusieurs exemples de boucles for en Python :
15.a. Parcourir une liste :
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
15.b. Parcourir une chaîne de caractères :
my_string = "Hello"
for char in my_string:
print(char)
15.c. Parcourir un dictionnaire (par valeurs) :
my_dict = {'a': 1, 'b': 2, 'c': 3}
for value in my_dict.values():
print(value)
15.d. Parcourir un dictionnaire (par clés) :
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
print(key)
15.e. Parcourir un dictionnaire (par paires clé-valeur) :
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
print(key, value)
15.f. Utilisation de la fonction range :
for i in range(5):
print(i)
15.g. Utilisation de la fonction enumerate pour obtenir l'indice et la valeur avec une liste :
my_list = ['a', 'b', 'c', 'd', 'e']
for index, value in enumerate(my_list):
print(f"Index: {index}, Value: {value}")
15.h. Parcourir un ensemble (set) :
my_set = {1, 2, 3, 4, 5}
for item in my_set:
print(item)
15.i. Boucle avec une condition if à l'intérieur :
my_list = [1, 2, 3, 4, 5]
for item in my_list:
if item % 2 == 0:
print(f"{item} est pair")
else:
print(f"{item} est impair")
Ces exemples illustrent différentes façons d'utiliser la boucle for en Python
pour parcourir différentes structures de données ou pour effectuer des actions
spécifiques.
16. Fonctionnement de la fonction range()
La fonction `range()` en Python génère une séquence d'entiers dans un intervalle donné. Voici comment elle fonctionne :
1. Syntaxe :
range(start, stop, step)
2. Paramètres :
- `start` (optionnel) : La valeur de départ de la séquence. Par défaut, elle est égale à 0.
- `stop` (obligatoire) : La valeur de fin de la séquence (non incluse).
- `step` (optionnel) : L'incrément utilisé pour générer les valeurs. Par défaut, il est égal à 1.
3. Retour : La fonction `range()` renvoie un objet de type range qui représente la séquence d'entiers spécifiée.
4. Exemples :
- `range(5)` génère les nombres 0, 1, 2, 3, 4.
- `range(1, 6)` génère les nombres 1, 2, 3, 4, 5.
- `range(0, 10, 2)` génère les nombres 0, 2, 4, 6, 8.
- `range(5, 0, -1)` génère les nombres 5, 4, 3, 2, 1.
5. Utilisation dans une boucle for :
for i in range(5):
print(i)
... 0
... 1
... 2
... 3
... 4
Cette boucle imprime les nombres de 0 à 4.
17. Switch
Python ne possède pas de structure de contrôle switch/case intégrée comme
certains autres langages de programmation, tels que Java ou C/C++.
Cependant, vous pouvez simuler un comportement similaire en utilisant une série
de déclarations if-elif-else.
Une autre solution serait d'utiliser un dictionnaire :
def switch_case(argument):
switcher = {
1: "Premier cas",
2: "Deuxième cas",
3: "Troisième cas"
}
return switcher.get(argument, "Cas par défaut")
# Utilisation du switch
print(switch_case(2)) # Output: Deuxième cas
print(switch_case(5)) # Output: Cas par défaut
Dans cet exemple, la fonction `switch_case` prend un argument et renvoie une
valeur en fonction de la correspondance de cet argument dans un dictionnaire.
Si aucune correspondance n'est trouvée, la valeur par défaut est renvoyée.
Cette approche n'est pas exactement la même qu'une structure de contrôle
switch/case traditionnelle, mais elle peut être utilisée pour obtenir un
comportement similaire en Python.
18. Différence entre un tuple et une liste
Voici quelques différences clés entre un tuple et une liste en Python :
1. Mutabilité :
- Tuple : Les tuples sont immuables, ce qui signifie qu'une fois créés, ils
ne peuvent pas être modifiés. Vous ne pouvez pas ajouter, supprimer ou
modifier des éléments individuels dans un tuple.
- Liste : Les listes sont mutables, ce qui signifie que vous pouvez ajouter,
supprimer ou modifier des éléments individuels dans une liste après sa
création.
2. Performance :
- Les opérations sur les tuples peuvent être plus rapides que sur les listes
en raison de leur immuabilité. Cependant, pour les opérations qui
nécessitent des modifications fréquentes, les listes sont mieux adaptées.
3. Utilisation :
- Les tuples sont souvent utilisés pour représenter des collections
d'éléments immuables.
- Les listes sont plus adaptées lorsque vous avez besoin de modifier les
éléments de la collection.
En résumé, la principale différence réside dans la mutabilité : les tuples sont
immuables tandis que les listes sont mutables. Le choix entre les deux dépend
de vos besoins spécifiques en termes de manipulation et de gestion des données.
19. Pourquoi n'y a-t-il pas de tableaux en Python ?
En Python, la notion de tableau est généralement remplacée par celle de listes.
Les listes en Python sont des structures de données dynamiques et flexibles qui
peuvent stocker une collection ordonnée d'éléments de différents types. Elles
sont similaires aux tableaux dans d'autres langages de programmation, mais
offrent des fonctionnalités supplémentaires, telles que la croissance
dynamique, la capacité à contenir des éléments de types différents, et des
méthodes intégrées pour manipuler et accéder à leurs éléments.
La raison pour laquelle Python ne possède pas de type de données spécifique
appelé "tableau" est liée à sa conception axée sur la simplicité et la
lisibilité du code. En offrant une seule structure de données polyvalente (la
liste), Python évite la complexité qui pourrait découler de la présence de
plusieurs types de structures de données similaires mais légèrement différents.
De plus, les listes Python sont implémentées de manière à gérer automatiquement
la gestion de la mémoire et d'autres aspects sous-jacents de la manipulation
des données, ce qui simplifie le processus de développement pour les programmeurs.
Ainsi, bien que Python ne possède pas de type de données spécifique appelé
"tableau", les listes Python fournissent une fonctionnalité similaire et sont
largement utilisées pour stocker et manipuler des collections d'éléments.
20. Opérations de bases courantes sur les listes en Python
Voici quelques opérations de base courantes sur les listes en Python :
1. Ajout d'éléments :
- `append(element)`: Ajoute un élément à la fin de la liste.
- `insert(index, element)`: Insère un élément à l'index spécifié.
2. Suppression d'éléments :
- `remove(element)`: Supprime la première occurrence de l'élément spécifié.
- `pop()`: Supprime et renvoie l'élément à la fin de la liste.
- `pop(index)`: Supprime et renvoie l'élément à l'index spécifié.
3. Accès aux éléments :
- Accès par index : Vous pouvez accéder à un élément spécifique en utilisant son index.
- Slicing : Vous pouvez accéder à une sous-liste en spécifiant une plage d'indices.
4. Modification d'éléments :
- Affectation par index : Vous pouvez modifier un élément spécifique en utilisant son index.
- Slicing : Vous pouvez modifier une sous-liste en spécifiant une plage d'indices.
5. Recherche d'éléments :
- `index(element)`: Renvoie l'index de la première occurrence de l'élément spécifié.
6. Autres opérations :
- `len(list)`: Renvoie la longueur de la liste.
- `count(element)`: Renvoie le nombre d'occurrences de l'élément spécifié dans la liste.
- `sort()`: Trie la liste dans l'ordre croissant par défaut.
- `reverse()`: Inverse l'ordre des éléments dans la liste.
- `extend(iterable)`: Ajoute les éléments de l'itérable spécifié à la fin de la liste.
Voici un exemple d'utilisation de certaines de ces opérations :
my_list = [1, 2, 3, 4, 5]
# Ajout d'un élément
my_list.append(6)
# Suppression d'un élément
my_list.remove(3)
# Accès à un élément
print(my_list[0]) # Output: 1
# Modification d'un élément
my_list[0] = 10
# Recherche d'un élément
print(my_list.index(4)) # Output: 3
# Affichage de la liste
print(my_list) # Output: [10, 2, 4, 5, 6]
21. Sélection de sous-listes avec le slicing
Exemple d'utilisation du slicing :
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Récupérer les éléments de l'index 2 à l'index 5 (non inclus)
sliced_list = my_list[2:5]
print(sliced_list) # Output: [3, 4, 5]
# Récupérer les éléments de l'index 3 jusqu'à la fin de la liste
sliced_list = my_list[3:]
print(sliced_list) # Output: [4, 5, 6, 7, 8, 9]
# Récupérer les éléments du début jusqu'à l'index 3 (non inclus)
sliced_list = my_list[:3]
print(sliced_list) # Output: [1, 2, 3]
# Récupérer les éléments de l'index -3 à l'index -1
sliced_list = my_list[-3:]
print(sliced_list) # Output: [7, 8, 9]
# Récupérer les éléments de l'index 1 à l'index 7 avec un pas de 2
sliced_list = my_list[1:7:2]
print(sliced_list) # Output: [2, 4, 6]
Le slicing permet de sélectionner des sous-listes en spécifiant une plage
d'indices. L'utilisation de slicing est flexible et permet de spécifier l'index
de début, l'index de fin (non inclus) et éventuellement le pas (incrément) pour
sélectionner les éléments souhaités.
Ces opérations de base vous permettent de manipuler efficacement les listes en Python.
Acte II — Scène 1
On a appris les bases, maintenant on s'amuse !
$ sudo apt-get install python3-pygame
22. PyGame
Voici un exemple de code utilisant PyGame qui crée une fenêtre de jeu avec un
carré se déplaçant selon les touches directionnelles.
import pygame
import sys
# Initialisation de Pygame
pygame.init()
# Dimensions de la fenêtre
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Mini-Jeu avec Pygame")
# Couleur blanche
white = (255, 255, 255)
# Position initiale du carré
x, y = width // 2, height // 2
# Vitesse de déplacement
speed = 10
# Chargement de l'image (remplacez par le chemin de votre image)
square_image = pygame.image.load("media/square.png")
square_rect = square_image.get_rect(center=(x, y))
# Boucle de jeu principale
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Détection des touches
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
square_rect.x -= speed
if keys[pygame.K_RIGHT]:
square_rect.x += speed
if keys[pygame.K_UP]:
square_rect.y -= speed
if keys[pygame.K_DOWN]:
square_rect.y += speed
# Mise à jour de l'écran
screen.fill(white) # Efface l'écran avec la couleur blanche
screen.blit(square_image, square_rect) # Dessine le carré
pygame.display.flip() # Met à jour l'écran
# Limite la boucle à 30 images par seconde
pygame.time.Clock().tick(30)
# Quitte Pygame
pygame.quit()
sys.exit()
Ce code PyGame crée un exemple permettant au joueur de déplacer une image à
l'intérieur d'une fenêtre de jeu.
Ces exemples couvrent les bases de Python, mais il y a beaucoup plus à explorer !
Vous pouvez par exemple trouver divers exemples (avec des équivalences dans
d'autres langages) sur le site
RosettaCode.org.
Created with ChatGPT