Dans cet atelier, vous allez explorer les structures de données fondamentales de Python : les listes, les tuples, les ensembles (sets) et les dictionnaires. En vous appuyant sur vos connaissances acquises lors des sessions précédentes, vous apprendrez à créer, manipuler et utiliser ces structures polyvalentes. Cette expérience pratique approfondira votre compréhension des concepts clés de Python et vous préparera à gérer des données plus complexes dans vos futurs programmes.
Ceci est un atelier guidé, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les consignes pour terminer chaque étape et acquérir une expérience concrète. Les données historiques montrent qu'il s'agit d'un atelier de niveau débutant avec un taux de réussite de 91 %. Il a reçu un taux d'avis positifs de 99 % de la part des apprenants.
Manipuler les listes
Dans cette étape, vous allez découvrir les listes, qui sont des collections d'éléments ordonnées et modifiables (mutables) en Python.
Ouvrez l'interpréteur Python en tapant la commande suivante dans votre terminal :
python
Vous devriez voir l'invite de commande Python (>>>), indiquant que vous êtes maintenant dans le shell interactif Python.
Commençons par créer une liste. Dans l'interpréteur Python, saisissez ce qui suit :
En Python, les listes sont créées à l'aide de crochets [], les éléments étant séparés par des virgules.
Vous pouvez accéder aux éléments d'une liste en utilisant leur index. N'oubliez pas que Python utilise une indexation commençant par zéro :
print(fruits[0]) ## Premier élément
Sortie :
apple
print(fruits[-1]) ## Dernier élément
Sortie :
cherry
Les listes sont mutables, ce qui signifie que vous pouvez modifier leur contenu :
fruits[1] = "blueberry"
print(fruits)
Sortie :
['apple', 'blueberry', 'cherry']
Vous pouvez ajouter des éléments à une liste en utilisant la méthode append() ou insérer des éléments à une position spécifique avec la méthode insert() :
Les listes sont extrêmement polyvalentes et largement utilisées en Python pour stocker des collections d'objets.
Comprendre les tuples
Dans cette étape, vous allez découvrir les tuples, qui sont des séquences ordonnées mais immuables en Python.
Dans l'interpréteur Python, créons un tuple :
coordinates = (3, 4)
print(coordinates)
Sortie :
(3, 4)
Les tuples sont créés à l'aide de parenthèses ().
Comme pour les listes, vous pouvez accéder aux éléments d'un tuple via leur index :
print(coordinates[0])
Sortie :
3
print(coordinates[1])
Sortie :
4
Cependant, contrairement aux listes, les tuples sont immuables. Cela signifie que vous ne pouvez pas modifier leur contenu après leur création :
coordinates[0] = 5 ## Cela générera une erreur
Sortie :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Les tuples peuvent contenir des types de données variés :
person = ("Alice", 25, "Engineer")
name, age, occupation = person ## Dépaquetage de tuple (unpacking)
print(f"{name} is {age} years old and works as an {occupation}.")
Sortie :
Alice is 25 years old and works as an Engineer.
Le dépaquetage de tuple est un moyen pratique d'assigner plusieurs variables simultanément.
Vous pouvez créer un tuple avec un seul élément, mais n'oubliez pas d'inclure une virgule finale :
Les ensembles sont créés à l'aide d'accolades {} ou de la fonction set(). Notez que l'ordre des éléments peut varier lors de l'affichage d'un ensemble.
Les ensembles suppriment automatiquement les doublons :
numbers = {1, 2, 2, 3, 3, 4}
print(numbers)
Sortie :
{1, 2, 3, 4}
Vous pouvez ajouter des éléments à un ensemble avec la méthode add() :
fruits.add("date")
print(fruits)
Sortie :
{'cherry', 'banana', 'apple', 'date'}
Pour supprimer des éléments, utilisez la méthode remove() :
fruits.remove("banana")
print(fruits)
Sortie :
{'cherry', 'apple', 'date'}
Les ensembles supportent les opérations mathématiques classiques telles que l'union, l'intersection et la différence :
Vous pouvez utiliser la compréhension de dictionnaire pour créer des dictionnaires de manière concise :
squares = {x: x**2 for x in range(5)}
print(squares)
Sortie :
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Les dictionnaires sont indispensables pour stocker et récupérer des données associées à des identifiants uniques.
Mise en pratique globale
Dans cette dernière étape, vous allez créer un programme qui utilise toutes les structures de données étudiées dans cet atelier.
Quittez l'interpréteur Python en tapant exit() ou en appuyant sur Ctrl+D.
Ouvrez le WebIDE dans l'environnement VM LabEx.
Créez un nouveau fichier nommé contact_manager.py dans le répertoire ~/project :
touch ~/project/contact_manager.py
Ouvrez ce fichier dans l'éditeur WebIDE et ajoutez le contenu suivant :
def add_contact(contacts, name, phone, email):
contacts[name] = {"phone": phone, "email": email}
print(f"Contact {name} added successfully.")
def remove_contact(contacts, name):
if name in contacts:
del contacts[name]
print(f"Contact {name} removed successfully.")
else:
print(f"Contact {name} not found.")
def display_contacts(contacts):
if contacts:
print("\nContact List:")
for name, info in contacts.items():
print(f"Name: {name}, Phone: {info['phone']}, Email: {info['email']}")
else:
print("Contact list is empty.")
def main():
contacts = {}
favorite_contacts = set()
while True:
print("\nContact Manager")
print("1. Add Contact")
print("2. Remove Contact")
print("3. Display Contacts")
print("4. Add to Favorites")
print("5. Display Favorites")
print("6. Exit")
choice = input("Enter your choice (1-6): ")
if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
email = input("Enter email: ")
add_contact(contacts, name, phone, email)
elif choice == "2":
name = input("Enter name to remove: ")
remove_contact(contacts, name)
elif choice == "3":
display_contacts(contacts)
elif choice == "4":
name = input("Enter name to add to favorites: ")
if name in contacts:
favorite_contacts.add(name)
print(f"{name} added to favorites.")
else:
print(f"Contact {name} not found.")
elif choice == "5":
print("\nFavorite Contacts:")
for name in favorite_contacts:
print(name)
elif choice == "6":
print("Thank you for using Contact Manager. Goodbye!")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()
Ce programme illustre l'utilisation des dictionnaires, des ensembles et des listes pour créer un système simple de gestion de contacts.
Enregistrez le fichier (la sauvegarde automatique est activée dans le WebIDE) et exécutez-le via la commande suivante dans le terminal :
python ~/project/contact_manager.py
Interagissez avec le programme en ajoutant des contacts, en les supprimant, en affichant la liste, en ajoutant des favoris et en consultant ces derniers. Voici un exemple d'interaction :
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Alice
Enter phone number: 123-456-7890
Enter email: alice@example.com
Contact Alice added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Bob
Enter phone number: 987-654-3210
Enter email: bob@example.com
Contact Bob added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 3
Contact List:
Name: Alice, Phone: 123-456-7890, Email: alice@example.com
Name: Bob, Phone: 987-654-3210, Email: bob@example.com
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 4
Enter name to add to favorites: Alice
Alice added to favorites.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 5
Favorite Contacts:
Alice
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 6
Thank you for using Contact Manager. Goodbye!
Ce programme démontre l'utilité concrète des dictionnaires (pour stocker les informations détaillées), des ensembles (pour gérer les favoris sans doublons) et des listes (utilisées implicitement dans le système de menu).
Résumé
Dans cet atelier, vous avez exploré les structures de données fondamentales de Python : les listes, les tuples, les ensembles et les dictionnaires. Vous avez appris à créer, manipuler et exploiter ces outils polyvalents, qui sont essentiels pour une gestion efficace des données en programmation Python.
Vous avez commencé par travailler avec les listes, en apprenant à créer, accéder et modifier des collections ordonnées. Vous avez ensuite découvert les tuples, en comprenant leur nature immuable et leurs cas d'utilisation pour représenter des collections de données fixes. Ensuite, vous avez exploré les ensembles, découvrant leur capacité à garantir l'unicité des éléments et à effectuer des opérations mathématiques. Enfin, vous avez manipulé les dictionnaires, apprenant à gérer des paires clé-valeur pour un stockage et une recherche de données performants.
Pour consolider ces concepts, vous avez développé un programme pratique de gestion de contacts intégrant plusieurs de ces structures. Ce projet a montré comment différentes structures de données peuvent collaborer au sein d'une application réelle, illustrant ainsi la puissance et la flexibilité de l'écosystème Python.
Ces structures de données constituent la colonne vertébrale de nombreux programmes Python, vous permettant d'organiser et de manipuler l'information avec efficacité. Au fil de votre progression, vous constaterez que ces outils sont indispensables pour résoudre une vaste gamme de problèmes de programmation. N'oubliez pas de vous exercer à les utiliser dans divers scénarios pour renforcer votre maîtrise du langage.