Variables, Types de données, cela veut dire quoi ?
Pas d'inquiétude on abordera cela ensemble aujourd'hui. Mais avant je tiens a me présenter si c'est la première fois que tu tombes sur un des articles de ce blog.
Moi, c'est Djoko Christian. Je suis développeur backend Python depuis presque un an. J'aime partager ce que j'apprends et il n'y a pas besoin d'être expert pour le faire.
je tiens à te dire que j'ai consacré ce blog uniquement à l'apprentissage de la programmation avec Python et Django, les deux outils que j'utilise au quotidien. Donc, si tu veux améliorer ton niveau ou si tu es débutant, je suis ravi de faire cette aventure avec toi.
Tu es prêt ? Allez, on y va...
Les variables en Python: une boîte magique qui s'adapte à son contenu 📦
En programmation, une variable c'est quoi exactement ? Imagine une boîte dans laquelle tu peux ranger des choses. Cette boîte a un nom, et ce qu'elle contient peut changer avec le temps.
La particularité de Python, c'est que contrairement à d'autres langages comme Java ou C++ (où tu dois préciser à l'avance quel type d'objet ta boîte va contenir), les variables Python sont super flexibles. Elles s'adaptent automatiquement au contenu que tu leur donnes !
En Java
int number = 42;
String text = "Salut";
En Python
number = 42
text = "Salut"
Tu vois ? Pas besoin de dire à Python "Hé, je vais mettre un nombre ici !"
Il le devine tout seul comme un grand.
Comment nommer tes variables (sans te prendre la tête)
En Python, on utilise généralement la convention snake_case
pour nommer les variables. C'est-à-dire que si tu as besoin de plusieurs mots, tu les sépares par des underscores.
name_user = "Djoko"
age_user = 24
is_author = True
Il y a quand même quelques règles à respecter 😅:
- Les noms peuvent contenir des lettres, des chiffres et des underscores
- Ils doivent commencer par une lettre ou un underscore (pas un chiffre)
- Ils sont sensibles à la casse (donc
age
etAge
sont deux variables différentes) - Évite d'utiliser les mots réservés par Python comme
if
,for
,while
, etc.
Et petit conseil entre nous: donne des noms clairs à tes variables. Quand tu revisiteras ton code dans 3 mois (ou quand quelqu'un d'autre le lira), tu te remercieras d'avoir écrit prix_total
plutôt que pt
ou pire encore x
😏.
Les types de données en Python: la boîte à outils du développeur 🧰
Laisse moi planter le décor si tu veux bien, en Python il existe deux grands types de données :
Les types de base intégrés (Built-in Types) :
Ce sont ceux que Python fournit nativement sans qu’on ait besoin d'importer quoi que ce soit (et c'est ce qu'on nous allons decouvrir aujourd'hui)
Types personnalisés :
En Python, tu peux créer tes propres types de données (on verra cela plus tard car c'est une notion un peu avancée)
Maintenant que cela est dit, laisse-moi te présenter globalement tous les types de base intégrés de Python, puis nous verrons en détail quelques uns et comment les utiliser.
Nous avons les types :
- Numeriques :
int, float, complex
- Booléens :
bool
- Text :
str
- Séquences :
list, tuple, range
- Sets :
set, frozenset
- Dictionnaires :
dict
- Binaires :
bytes, bytearray, memoryview
- Spécial :
NoneType
Les types numériques: pour quand tu dois compter ou calculer🔢
Python propose trois types numériques principaux, chacun avec ses propres caractéristiques et utilisations.
Entiers (int)
Les entiers (
int
) représentent des nombres entiers sans partie décimale. Contrairement à d'autres langages comme Java ou C++, Python n'a pas de limite fixe pour les entiers - ils peuvent être aussi grands que la mémoire de ton ordinateur le permet !age = 25 douala_population = 3_200_000 negatif_number = -42 very_large_number = 10_000_000_000_000
Opérations courantes:
addition_two_numbers = 5 + 5 soustraction_two_numbers = 10 - 7 multiplication_two_numbers = 4 * 6 integer_quotient = 7 // 2 remainder = 7 % 2 power= 2 ** 3 absolute_value = abs(-42)
Il est important d’exécuter ce code sur ton propre ordinateur pour bien voir les résultats et comprendre ce qui se passe. Pour afficher un résultat, utilise la fonction
print()
, par exemple :print(addition_two_numbers)
. Et n’oublie pas ce qu’on s’est dit l’autre jour : on apprend vraiment en pratiquant. 🫡📌
// (division entière, ignore la partie décimale)
% (modulo, reste de la division)
** (puissance, genre 2 à la puissance 3 (2 ** 3))
Nombres à virgule flottante (float)
Les
float
représentent les nombres décimaux. Ils sont parfaits pour les mesures, les calculs scientifiques, et tout ce qui nécessite des fractions.height = 1.75 pi = 3.14159 small_number = 1.7e-10 large_number = 5.6e8
Les
float
de Python suivent la norme IEEE 754 et sont stockés sur 64 bits. Cela signifie qu'ils ont une précision limitée et peuvent souffrir d'erreurs d'arrondi - un problème inhérent à la représentation binaire des nombres décimaux.Considere ce code
result = 0.1 + 0.2 print(result) 😱
Tu seras supris de voir un resultant comme celui ci:
0.30000000000000004
Ce qu'il faut comprendre de ce resultat 🧏🏿
Les ordinateurs ne stockent pas les nombres comme nous (en base 10 (de 0 a 9).
Ils utilisent la base 2 (le binaire) et une norme appelée IEEE 754 pour stocker lesfloat
.Mais certains nombres comme 0.1 ou 0.2 ne peuvent pas être représentés exactement en binaire, un peu comme 1/3 = 0.333... ne peut pas être représenté exactement en base 10.
Pour en savoir plus cliquez ici
Nombres Complex
Les nombres complexes sont composés d'une partie réelle et d'une partie imaginaire. Tu te rappelles les maths au lycée ? Ces nombres de la forme a + ib ? C'est exactement ça !
z1 = 3 + 4j z2 = complex(2, -1)
En Python, un nombre complexe est représenté par deux
float
, un pour la partie réelle et un pour la partie imaginaire. Et comme tu as pu le constater, tu peut aussi creer des combres complex en utilisant la fonction integre de python nommecomplex
en la fournissant deux valeur (je sais que tu comprends pourquoi on les passes ces valeurs 😏, mais ne t'inquiète pas nous reviendrons sur les notions de fonctions)Opérations courantes:
real = z1.real imag = z1.imag z3 = z1 + z2 z4 = z1 * z2
Ne t'inquiète pas si les nombres complexes te semblent mystérieux. Sauf si tu travailles dans des domaines spécifiques comme le traitement du signal, l'électronique ou certains calculs scientifiques, tu n'auras probablement jamais à les utiliser 😅
Les booléens: pour quand c'est oui ou non
Les booléens (
bool
) sont l'un des types les plus simples en Python. Ils ne peuvent prendre que deux valeurs :True
(vrai) ouFalse
(faux).he_is_new_in_python = True he_is_a_car = False
Ils sont souvent utilisés dans les conditions
if he_is_new_in_python: print("Hello new student")
En Python,
bool
est en réalité une sous-classe deint
!True
est équivalent à l'entier 1, etFalse
à l'entier 0. C'est pourquoi tu peux faire des opérations comme:result= True + True
Évaluation booléenne implicite:
En Python, pratiquement tout peut être évalué comme un booléen. C'est ce qu'on appelle la "véracité" (truthiness) d'une valeur:
bool(0) bool("") bool([]) bool({}) bool(None) bool(42) bool("Salut") bool([1, 2, 3])
Chaînes de caractères (str): pour stocker du texte 📝
Les chaînes de caractères (ou "strings" en anglais), sont utilisées pour représenter du texte en Python. Elles sont incroyablement polyvalentes et disposent de nombreuses méthodes utiles.
name = "Djoko" message = 'Python is cool' description = """This is a description that spans multiple lines. Handy, isn’t it?"""
En Python 3, les chaînes sont encodées en Unicode par défaut (UTF-8), ce qui permet de représenter pratiquement n'importe quel caractère de n'importe quelle langue. Chaque caractère est indexé, commençant à 0.
Caractéristiques importantes:
- Les chaînes de caractères(str) sont immutables (tu ne peux pas modifier un caractère individuellement)
- Elles sont indexées (accès aux caractères par position)
- Elles supportent le "slicing" (extraction de sous-chaînes)
Opérations et méthodes courantes:
firstname = "Eddy" message = "This is a message" gretting = "Bonjour " + firstname firts_letter = firstname[0] last_letter = firstname[-1] substring = prenom[2:5] position = message.find("is") containt = "This" in message
Comme tu peut le constater les chaines de caractere on beaucoup de methode et de cas d'utilisation n'hesiste pas a cliquez ici si tu veut en savoir plus.
Listes (list): la collection flexible et modifiable
Les listes sont parmi les types de données les plus utilisés en Python. Elles te permettent de stocker une collection ordonnée d'éléments de n'importe quel type.
fruits = ["apple", "banana", "mango", "orange"] grades = [12, 15, 9, 17] mix = [42, "Python", True, 3.14] empty_list = [] nested_list = [1, [2, 3], 4]
Caractéristiques importantes:
- Les listes sont mutables (tu peux modifier les éléments)
- Elles sont ordonnées (l'ordre des éléments est préservé)
- Elles sont indexées (accès aux éléments par position)
- Elles peuvent contenir des doublons
pour en savoir plus cliquer ici
Tuples: comme les listes, mais immuables 🔒
Les tuples sont très similaires aux listes, mais avec une différence cruciale: une fois créés, ils ne peuvent pas être modifiés.
data = (4.05, 9.70)
rgb = (255, 0, 0)
empty_tuple = ()
singleton tuple = (42,)
Les tuples étant immuables, Python peut les optimiser davantage que les listes, ce qui les rend légèrement plus rapides en accès.
Et note bien que pour créer un tuple avec une valeur on rajoute une virgule a la fin (comme dans le dernier exemple).
Pourquoi utiliser des tuples plutôt que des listes?
- Pour les données qui ne doivent pas changer (constantes)
- Pour les clés de dictionnaires (les listes ne peuvent pas être utilisées comme clés)
- Pour le retour de plusieurs valeurs depuis une fonction
- Pour une meilleure performance quand tu n'as pas besoin de modifier les éléments
Opérations courantes:
x,y = data
position = rgb.index(0)
liste_to_tuple = tuple(["a", "b", "c"])
tuple_to_list = list(rgb)
Vous constater également l'utilisation des fonctions tuple
et list
pour convertir une liste en tuple ou un tuple en liste, oui comme par magie 😁
Pour en savoir plus cliquez ici.
Range: pour les séquences numériques
range
est un type spécial qui représente une séquence immuable de nombres. Il est particulièrement utilisé dans les boucles.
nombers = range(5)
nombers = range(2, 7)
nombers = range(0, 10, 2)
Exécute cela dans ton IDE pour mieux comprendre 😎
range
est très optimisé en mémoire. Il ne stocke pas tous les nombres, mais seulement les paramètres start
, stop
et step
.
Utilisation courante:
for i in range(5):
print(i)
Pour en savoir plus cliquez ici.
Set: Ensemble modifiable
fruits = {"pomme", "banane", "orange", "pomme"}
number = {1, 2, 3, 4, 5}
Les sets utilisent une table de hachage, ce qui rend les opérations de recherche et d'insertion très rapides.
Caractéristiques importantes:
- Les sets sont mutables (tu peux ajouter ou supprimer des éléments)
- Ils ne sont pas ordonnés (pas d'indexation)
- Ils ne peuvent contenir que des éléments hachables (immuables)
- Pas de doublons
Opérations et méthodes courantes:
fruits.add("mangue")
fruits.remove("banane")
fruits.discard("kiwi")
element = fruits.pop()
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
Pour en savoir plus cliquez ici.
Frozenset: ensemble immuable
frozenset
est comme set
, mais il est immuable. Une fois créé, tu ne peux plus le modifier. Un peu comme les listes et les tuples qu'on a vu tout a l'heure.
constantes = frozenset(["pi", "e", "phi"])
Ils sont utiles lorsque tu as besoin d'un ensemble comme clé de dictionnaire ou comme élément d'un autre ensemble (Moi perso je n'ai pas encore eu besoin de d'utiliser ce type la 😅).
Pour en savoir plus cliquez ici
Dictionnaires (dict): pour associer des clés à des valeurs 🗂️
Les dictionnaires sont des collections de paires clé-valeur. Ils sont extrêmement utiles lorsque tu dois stocker des données associatives.
student = {
"name": "Djoko",
"firstname": "Christian",
"age": 24,
"city": "Douala",
"grade": [14, 16, 12]
}
Comme les sets, les dictionnaires utilisent des tables de hachage, ce qui rend les recherches très rapides.
Caractéristiques importantes:
- Les dictionnaires sont mutables
- Les clés doivent être uniques et hachables (immuables
Opérations et méthodes courantes:
name= student["name"]
age = student.get("age", 0)
student["city"] = "Yaoundé"
Pour en savoir plus n'hésite pas a suivre ce lien
Exercices: à toi de jouer maintenant! 💪
La théorie c'est bien, mais rien ne vaut la pratique pour vraiment comprendre. Je te propose trois exercices de difficulté croissante pour tester tes nouvelles connaissances.
Exercice 1: Les bases (niveau facile) 🟢
- Crée un programme qui:
- Demande à l'utilisateur son nom, son âge et sa ville
- Stocke ces informations dans des variables appropriées
- Convertit l'âge en entier (car
input()
retourne toujours une chaîne) - Calcule l'année de naissance approximative (année actuelle - âge)
- Affiche un message de bienvenue avec toutes ces informations en utilisant un f-string
Exemple de résultat:
Entrez votre nom: John
Entrez votre âge: 30
Entrez votre ville: Kribi
Bonjour John
! Vous avez 30 ans, vous êtes né(e) aux alentours de 1995 et vous habitez à Kribi.
Exercice 2: La liste de courses (niveau moyen) 🟡
Crée un programme qui:
- Initialise un dictionnaire vide appelé
cart
- Demande à l'utilisateur d'entrer 3 articles à acheter et leur prix
- Ajoute chaque article et son prix au dictionnaire
- Calcule le montant total du panier
- Affiche le contenu du panier et le total formaté avec 2 décimales
Exemple de résultat:
Article 1: Mangue
Prix: 500
Article 2: Poulet
Prix: 2500
Article 3: Riz
Prix: 1200
Votre panier:
- Mangue: 500.00 FCFA
- Poulet: 2500.00 FCFA
- Riz: 1200.00 FCFA
Total: 4200.00 FCFA
Exercice 3: L'analyseur de texte (niveau difficile) 🔴
Crée un programme qui:
- Demande à l'utilisateur de saisir une phrase ou un paragraphe
- Analyse le texte pour déterminer:
- Le nombre total de caractères (y compris les espaces)
- Le nombre de caractères sans les espaces
- Le nombre de mots
- Le nombre de phrases (en supposant qu'une phrase se termine par
.
,!
ou?
) - Un dictionnaire contenant chaque mot et le nombre de fois qu'il apparaît (indépendamment de la casse)
- Affiche toutes ces statistiques de manière claire et formatée
Conseil: Utilise les méthodes de chaînes comme split()
, lower()
et les opérations sur les collections.
Exemple de résultat:
Entrez un texte: J'aime Python. C'est un langage très puissant. N'est-ce pas génial?
Analyse du texte:
- Nombre total de caractères: 62
- Nombre de caractères (sans espaces): 52
- Nombre de mots: 12
- Nombre de phrases: 3
- Fréquence des mots:
* j'aime: 1
* python: 1
* c'est: 1
* un: 1
* langage: 1
* très: 1
* puissant: 1
* n'est-ce: 1
* pas: 1
* génial: 1
Ces exercices sont conçus pour te faire pratiquer les différents types de données et les manipulations que nous avons vus. Si tu es bloqué, essaie de décomposer le problème en petites étapes et avance progressivement. Et n'oublie pas: la pratique rend parfait.
Le mot de la fin
Tu vois, les variables et les types de données en Python, c'est à la fois simple et puissant! La beauté de Python, c'est qu'il te laisse te concentrer sur ce que tu veux réaliser plutôt que sur les détails techniques comme la déclaration de types.
Dans notre prochain article, nous allons explorer les opérateurs et les structures de contrôle comme les conditions et les boucles. Tu verras comment donner de l'intelligence à ton code pour qu'il prenne des décisions et répète des tâches automatiquement.
D'ici là, n'hésite pas à jouer avec Python! Crée des variables, change leur type, essaie de les convertir... La pratique est la meilleure façon d'apprendre. Et si tu es bloqué, rappelle-toi que je suis là pour t'aider.
À bientôt pour la suite de notre aventure Python!
0 commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire