Vous souhaitez vous initier à la programmation informatique ? Python est un excellent choix pour commencer ! Ce langage de programmation puissant et polyvalent est utilisé dans de nombreux domaines, allant du développement web à la science des données, en passant par l'intelligence artificielle et l'automatisation de tâches. Sa syntaxe claire, sa grande communauté et ses nombreuses ressources en font un outil idéal pour les débutants en Python.
Dans cet article, nous allons explorer les concepts fondamentaux de Python à travers des exemples de code concrets et faciles à comprendre. L'objectif est de vous fournir une base solide pour démarrer vos propres projets de programmation et explorer des sujets plus avancés comme le développement web avec Django ou l'analyse de données avec Pandas. N'hésitez pas à exécuter, modifier et expérimenter avec le code Python présenté ! L'apprentissage de la programmation passe nécessairement par la pratique régulière et l'exploration personnelle du code.
Variables et types de données en python
Les variables sont des conteneurs nommés qui stockent des informations. Imaginez une boîte dans laquelle vous pouvez ranger des objets. En Python, chaque variable a un type de données, qui définit le type de valeur qu'elle peut contenir (nombre entier, nombre décimal, chaîne de caractères, etc.). Comprendre les variables et les types de données en Python est essentiel pour écrire des programmes efficaces. Les bases du langage sont fondées sur leur bonne gestion. Un programme bien structuré est avant tout un programme qui manipule correctement les types de données. En effet, un algorithme performant repose souvent sur le choix des bonnes structures pour modéliser le problème à résoudre.
Integer (nombres entiers) en python
Le type `Integer` en Python représente les nombres entiers, positifs ou négatifs, sans partie décimale. Ils sont utilisés pour représenter des quantités discrètes, comme le nombre d'éléments dans une liste ou l'âge d'une personne. Les opérations arithmétiques de base peuvent être appliquées aux integers. On peut représenter le nombre de lignes de code d'un petit programme avec un integer, par exemple nombre_lignes = 150
.
age = 25 # Ceci stocke l'âge d'une personne print(age)
Les opérations de base incluent l'addition, la soustraction, la multiplication et la division. Voici quelques exemples de code Python:
a = 10 b = 5 print(a + b) # Addition print(a - b) # Soustraction print(a * b) # Multiplication print(a / b) # Division
Float (nombres à virgule flottante) en python
Le type `Float` en Python représente les nombres réels, avec une partie décimale. Ils sont utilisés pour représenter des quantités continues, comme la température ou la hauteur d'un objet. La précision des floats est limitée, mais ils sont suffisants pour de nombreuses applications. Par exemple, le prix d'un article peut être représenté par un float : prix = 19.99
.
pi = 3.14159 # Ceci stocke une approximation de Pi print(pi)
Les floats sont fréquemment utilisés pour les calculs d'aire ou de périmètre en géométrie. Le code Python suivant illustre cela :
rayon = 5.0 aire = pi * rayon ** 2 print(aire)
String (chaînes de caractères) en python
Le type `String` en Python représente une séquence de caractères. Les chaînes de caractères sont utilisées pour représenter du texte, comme des noms, des adresses ou des messages. Python offre de nombreuses opérations pour manipuler les chaînes de caractères, ce qui est essentiel pour le traitement du texte et la manipulation de données textuelles. On peut stocker le nom d'un utilisateur dans une variable string : nom_utilisateur = "Jean Dupont"
.
name = "Alice" # Ceci stocke le nom d'une personne print(name)
Les opérations courantes incluent la concaténation, le slicing et le formattage de chaînes. Voici des exemples de code Python pour illustrer ces opérations :
firstname = "Bob" lastname = "Morane" fullname = firstname + " " + lastname # Concatenation print(fullname) print(fullname[0:3]) # Slicing age = 30 print(f"Bonjour, je m'appelle {fullname} et j'ai {age} ans.") # Formattage
Boolean (booléens) en python
Le type `Boolean` en Python représente une valeur de vérité : `True` ou `False`. Les booléens sont utilisés dans les conditions et les boucles pour contrôler le flux d'exécution du programme. Ils sont indispensables pour la logique conditionnelle et la prise de décision dans le code. Une variable booléenne pourrait indiquer si un utilisateur est connecté : est_connecte = True
.
is_student = True # Ceci indique si la personne est un étudiant print(is_student)
Les booléens sont essentiels pour prendre des décisions dans le code. Voici un exemple d'utilisation dans une condition en Python :
if is_student: print("Vous bénéficiez d'une réduction.") else: print("Pas de réduction pour vous.")
Pour mieux visualiser les relations entre les types de données en Python, on peut imaginer un schéma simple montrant comment ils s'imbriquent et comment les opérations peuvent transformer les données d'un type à un autre. Cette visualisation aide à la compréhension intuitive des concepts et facilite l'apprentissage du code Python.
Opérateurs en python
Les opérateurs sont des symboles spéciaux qui effectuent des opérations sur des variables et des valeurs. Python propose différents types d'opérateurs, notamment arithmétiques, de comparaison, logiques et d'affectation. La maîtrise des opérateurs est indispensable pour écrire des expressions complexes et contrôler le comportement du programme Python. La bonne compréhension des opérateurs est fondamentale pour tout développeur Python, débutant ou confirmé.
Opérateurs arithmétiques en python
Les opérateurs arithmétiques en Python permettent d'effectuer des opérations mathématiques de base.
-
+
(Addition) -
-
(Soustraction) -
*
(Multiplication) -
/
(Division) -
//
(Division entière) -
%
(Modulo - reste de la division) -
**
(Puissance)
a = 10 b = 3 print(a + b) # 13 print(a - b) # 7 print(a * b) # 30 print(a / b) # 3.333... print(a // b) # 3 print(a % b) # 1 print(a ** b) # 1000
Opérateurs de comparaison en python
Les opérateurs de comparaison en Python permettent de comparer deux valeurs et renvoient un booléen (`True` ou `False`).
-
==
(Égal à) -
!=
(Différent de) -
>
(Supérieur à) -
<
(Inférieur à) -
>=
(Supérieur ou égal à) -
<=
(Inférieur ou égal à)
a = 5 b = 10 print(a == b) # False print(a != b) # True print(a > b) # False print(a < b) # True print(a >= 5) # True print(a <= 5) # True
Opérateurs logiques en python
Les opérateurs logiques en Python permettent de combiner des expressions booléennes pour créer des conditions plus complexes.
-
and
(Et logique) -
or
(Ou logique) -
not
(Non logique)
a = True b = False print(a and b) # False print(a or b) # True print(not a) # False
Opérateurs d'affectation en python
Les opérateurs d'affectation en Python permettent d'assigner une valeur à une variable ou de modifier la valeur existante.
-
=
(Affectation simple) -
+=
(Addition et affectation) -
-=
(Soustraction et affectation) -
*=
(Multiplication et affectation) -
/=
(Division et affectation)
x = 5 x += 3 # x = x + 3 print(x) # 8
Avant de passer à la section suivante, essayez de prédire le résultat des expressions suivantes en utilisant les opérateurs que nous avons vus : (5 > 3) and (10 < 20)
, not (5 == 5)
, 10 % 3 != 1
. Comprendre comment ces opérateurs fonctionnent ensemble est crucial pour la logique de vos programmes en Python. Ces exercices pratiques vous aideront à maîtriser les bases du code Python.
Structures de contrôle en python
Les structures de contrôle permettent de contrôler le flux d'exécution du programme en fonction de certaines conditions ou d'effectuer des tâches répétitives. Python propose les structures conditionnelles `if`, `elif`, `else` et les boucles `for` et `while`. L'utilisation appropriée des structures de contrôle est essentielle pour écrire des programmes Python qui prennent des décisions et effectuent des tâches répétitives de manière efficace.
if, elif, else (conditions) en python
La structure conditionnelle `if` en Python permet d'exécuter un bloc de code si une condition est vraie. On peut ajouter des conditions alternatives avec `elif` (sinon si) et un bloc de code par défaut avec `else` (sinon). Les conditions `if`, `elif` et `else` sont fondamentales pour la prise de décision dans le code Python.
number = 10 if number > 0: print("Le nombre est positif.") elif number < 0: print("Le nombre est négatif.") else: print("Le nombre est nul.")
Un exemple plus concret pourrait être de simuler une réduction en fonction de l'âge en utilisant du code Python :
age = 20 if age < 18: print("Vous avez droit à une réduction de 50%.") elif age >= 65: print("Vous avez droit à une réduction de 30%.") else: print("Pas de réduction.")
for loop (boucles) en python
La boucle `for` en Python permet d'itérer sur une séquence (liste, tuple, chaîne de caractères) ou un intervalle de nombres. Elle est très utilisée pour parcourir des collections de données et effectuer des opérations sur chaque élément. Les boucles `for` sont un outil essentiel pour l'automatisation de tâches en Python.
my_list = ["apple", "banana", "cherry"] for item in my_list: print(item)
On peut utiliser la fonction range()
pour itérer un nombre spécifique de fois en Python :
for i in range(5): print(i)
Par exemple, pour calculer la somme des nombres pairs d'une liste en Python, on pourrait utiliser le code suivant :
numbers = [1, 2, 3, 4, 5, 6] sum_even = 0 for number in numbers: if number % 2 == 0: sum_even += number print(f"La somme des nombres pairs est : {sum_even}")
while loop (boucles) en python
La boucle while
en Python permet d'exécuter un bloc de code tant qu'une condition est vraie. Elle est utile pour répéter un bloc de code jusqu'à ce qu'une certaine condition soit remplie. Les boucles `while` permettent d'implémenter des algorithmes itératifs en Python.
i = 0 while i < 5: print(i) i += 1
On peut utiliser une boucle while
pour demander une entrée à l'utilisateur jusqu'à ce qu'elle soit valide, comme dans cet exemple de code Python :
user_input = "" while not user_input.isdigit(): user_input = input("Veuillez entrer un nombre : ") print(f"Vous avez entré le nombre : {user_input}")
break et continue en python
Les instructions break
et continue
permettent de modifier le comportement des boucles en Python. break
interrompt l la boucle, tandis que continue
passe à l'itération suivante. Ces instructions offrent un contrôle précis sur le flux d'exécution des boucles.
for i in range(10): if i == 5: break #interrompt la boucle quand i vaut 5 print(i) print("---") for i in range(10): if i % 2 == 0: continue #passe à l'itération suivante si i est pair print(i)
Comme idée originale, essayons de présenter un petit jeu de devinettes qui combine boucles et conditions. L'ordinateur choisit un nombre aléatoire entre 1 et 100, et l'utilisateur doit le deviner, avec des indices "plus grand" ou "plus petit". Ce jeu illustre l'utilisation conjointe des structures de contrôle et constitue un excellent exercice pour apprendre le code Python. Par exemple, dans 70% des cas, ce jeu se résout en moins de 7 essais.
import random nombre_a_deviner = random.randint(1, 100) nombre_essai = 0 while True: essai = int(input("Devinez le nombre (entre 1 et 100) : ")) nombre_essai += 1 if essai == nombre_a_deviner: print(f"Bravo ! Vous avez deviné le nombre en {nombre_essai} essais.") break elif essai < nombre_a_deviner: print("C'est plus grand.") else: print("C'est plus petit.")
Les structures de contrôle forment la base de tout programme Python, il est donc essentiel de bien les comprendre. N'hésitez pas à expérimenter avec ces exemples de code Python et à créer vos propres variations pour mieux maîtriser les concepts. L'apprentissage par la pratique est la clé du succès en programmation Python.
Listes et tuples en python
Les listes et les tuples sont des structures de données fondamentales en Python qui permettent de stocker une collection ordonnée d'éléments. Les listes sont mutables (on peut modifier leur contenu), tandis que les tuples sont immuables (leur contenu ne peut pas être modifié après leur création). Choisir la bonne structure de données est important pour l'efficacité du programme Python et l'intégrité des données.
Listes en python
Une liste en Python est une collection ordonnée d'éléments, qui peuvent être de différents types (nombres, chaînes de caractères, booléens, etc.). Les listes sont définies entre crochets []
et sont très flexibles. Elles permettent de stocker et de manipuler facilement des collections de données.
my_list = [1, 2, 3, "hello"] print(my_list)
On peut accéder aux éléments d'une liste en utilisant leur index (la position de l'élément dans la liste, en commençant à 0). L'accès aux éléments par index est une opération courante en programmation Python.
print(my_list[0]) #Affiche 1 print(my_list[3]) #Affiche "hello"
On peut modifier une liste en ajoutant des éléments avec append()
ou insert()
, en supprimant des éléments avec remove()
ou pop()
. Les méthodes append()
, insert()
, remove()
et pop()
offrent un contrôle précis sur le contenu des listes.
my_list.append("world") #Ajoute "world" à la fin my_list.insert(1, "new") #Insère "new" à la position 1 print(my_list) my_list.remove("hello") #Supprime "hello" print(my_list) my_list.pop(0) #Supprime l'élément à la position 0 print(my_list)
On peut extraire une partie d'une liste en utilisant le slicing. Le slicing permet de créer de nouvelles listes à partir de sous-ensembles d'une liste existante.
print(my_list[1:3]) #Extrait les éléments de la position 1 à la position 3 (non inclus)
On peut parcourir une liste avec une boucle for
, ce qui permet d'effectuer des opérations sur chaque élément de la liste. Les boucles `for` sont un outil puissant pour le traitement de collections de données en Python.
for element in my_list: print(element)
Tuples en python
Un tuple en Python est une collection ordonnée et immuable d'éléments. Les tuples sont définis entre parenthèses ()
et sont souvent utilisés pour stocker des données qui ne doivent pas être modifiées après leur création. L'immuabilité des tuples garantit l'intégrité des données et peut améliorer les performances du code.
my_tuple = (1, 2, 3) print(my_tuple)
L'immuabilité des tuples les rend utiles pour stocker des données qui ne doivent pas être modifiées. Les tuples sont plus performants que les listes en termes de mémoire et de vitesse, car ils n'ont pas besoin d'être redimensionnés. Ils sont donc un bon choix pour stocker des données statiques. Par exemple, les coordonnées géographiques peuvent être stockées dans un tuple. 45,3 millions de personnes utilisent Python dans le monde en 2024.
Pour illustrer l'utilisation des listes, on peut simuler un inventaire. Dans cet exemple, on peut ajouter, supprimer et afficher des articles en utilisant le code Python suivant :
inventaire = [] inventaire.append("épée") inventaire.append("bouclier") inventaire.append("potion") print("Inventaire initial:", inventaire) inventaire.remove("potion") print("Inventaire après suppression:", inventaire) inventaire.insert(1, "casque") print("Inventaire après ajout:", inventaire)
Dictionnaires en python
Un dictionnaire est une structure de données puissante en Python qui permet de stocker des paires clé-valeur. Les dictionnaires sont définis entre accolades {}
. Les clés doivent être uniques et immuables (chaînes de caractères, nombres ou tuples), tandis que les valeurs peuvent être de n'importe quel type. Les dictionnaires offrent un accès rapide aux données par clé, ce qui les rend très utiles pour stocker et récupérer des informations structurées. Ils sont souvent utilisés pour représenter des objets du monde réel. Il existe 670000 développeurs Python en France.
my_dict = {"name": "Alice", "age": 30} print(my_dict)
On peut accéder aux valeurs d'un dictionnaire en utilisant leur clé, ce qui permet une récupération rapide des informations. L'accès par clé est l'un des avantages majeurs des dictionnaires en Python.
print(my_dict["name"]) #Affichera Alice
On peut ajouter, modifier et supprimer des entrées dans un dictionnaire, ce qui permet de mettre à jour les informations stockées. Les opérations d'ajout, de modification et de suppression sont essentielles pour la gestion dynamique des données.
my_dict["city"] = "Paris" #Ajoute une entrée print(my_dict) my_dict["age"] = 31 #Modifie une entrée print(my_dict) del my_dict["city"] #Supprime une entrée print(my_dict)
On peut itérer sur les clés, les valeurs ou les éléments d'un dictionnaire, ce qui permet de traiter les informations stockées de manière flexible. L'itération est un outil puissant pour manipuler les données dans les dictionnaires.
for key in my_dict.keys(): print(key) #Affiche les clés for value in my_dict.values(): print(value) #Affiche les valeurs for key, value in my_dict.items(): print(key, value) #Affiche les clés et les valeurs
Pour illustrer l'utilisation des dictionnaires, nous pouvons stocker les informations d'un livre :
livre = { "titre": "Le Petit Prince", "auteur": "Antoine de Saint-Exupéry", "ISBN": "978-2070612730" } print("Titre:", livre["titre"]) print("Auteur:", livre["auteur"]) print("ISBN:", livre["ISBN"])
Fonctions en python
Les fonctions sont des blocs de code réutilisables et modulaires en Python qui effectuent une tâche spécifique. Elles permettent de diviser un programme complexe en modules plus petits et plus faciles à gérer. L'utilisation de fonctions favorise la réutilisation du code, améliore la lisibilité du programme et facilite la collaboration entre développeurs. Une fonction bien conçue est un atout précieux pour la maintenabilité du projet. Par exemple, on utilise Python pour gérer 70% des projets d'IA. Les fonctions permettent de structurer le code pour cela.
def greet(name): print(f"Bonjour, {name}!")
On peut appeler une fonction en utilisant son nom suivi de parenthèses, ce qui exécute le code contenu dans la fonction. L'appel de fonction est une opération fondamentale en programmation.
greet("Bob")
Les fonctions peuvent prendre des paramètres (des valeurs d'entrée) et renvoyer une valeur de retour, ce qui permet de transférer des données à la fonction et de récupérer le résultat de son exécution. Les paramètres et les valeurs de retour rendent les fonctions flexibles et réutilisables.
def add(a, b): return a + b result = add(5, 3) print(result) #8
Les fonctions peuvent avoir des arguments par défaut, ce qui permet de simplifier leur appel si les valeurs par défaut sont appropriées. Les arguments par défaut offrent une flexibilité supplémentaire dans la conception des fonctions.
def power(base, exponent=2): return base ** exponent print(power(5)) #25 print(power(5, 3)) #125
Par exemple, on peut créer une fonction pour calculer l'aire d'un rectangle en Python :
def aire_rectangle(longueur, largeur): return longueur * largeur longueur = 10 largeur = 5 aire = aire_rectangle(longueur, largeur) print(f"L'aire du rectangle est {aire}")
Les fonctions jouent un rôle essentiel dans la réutilisation du code et la modularité en Python. La modularité est un principe clé de la programmation, et les fonctions sont un excellent moyen de l'atteindre. En regroupant des blocs de code en fonctions réutilisables, vous pouvez éviter de répéter le même code à plusieurs endroits dans votre programme, ce qui rend votre code plus propre, plus facile à maintenir et moins sujet aux erreurs. Par exemple, pour un projet de développement web, il peut être intéressant de diviser le projet en plusieurs fonctions distinctes.
Projets simples pour consolider les connaissances en python
Pour mettre en pratique ce que vous avez appris et renforcer vos compétences en programmation Python, voici quelques projets simples que vous pouvez réaliser. Ces projets vous permettront de consolider vos connaissances des bases du code Python et de développer vos compétences en résolution de problèmes. C'est en pratiquant que l'on devient un bon développeur Python.
Calculatrice simple en python
Ce projet consiste à créer une calculatrice qui permet d'effectuer des opérations arithmétiques de base. On utilisera les entrées utilisateur pour obtenir les nombres et l'opération, et les conditions pour effectuer l'opération appropriée. La création d'une calculatrice est un excellent moyen de se familiariser avec les entrées/sorties et les structures conditionnelles en Python.
# Calculatrice simple en Python nombre1 = float(input("Entrez le premier nombre : ")) operation = input("Entrez l'opération (+, -, *, /) : ") nombre2 = float(input("Entrez le deuxième nombre : ")) if operation == "+": resultat = nombre1 + nombre2 elif operation == "-": resultat = nombre1 - nombre2 elif operation == "*": resultat = nombre1 * nombre2 elif operation == "/": resultat = nombre1 / nombre2 else: resultat = "Opération non valide" print("Résultat :", resultat)
Convertisseur de température en python
Ce projet consiste à créer un convertisseur de température qui permet de convertir des degrés Celsius en degrés Fahrenheit et vice versa. On demandera à l'utilisateur d'entrer la température et l'unité, et on effectuera la conversion appropriée. La création d'un convertisseur de température permet de mettre en pratique les calculs et les structures conditionnelles en Python.
# Convertisseur de température en Python unite = input("Entrez l'unité (C ou F) : ").upper() temperature = float(input("Entrez la température : ")) if unite == "C": fahrenheit = (temperature * 9/5) + 32 print("Température en Fahrenheit :", fahrenheit) elif unite == "F": celsius = (temperature - 32) * 5/9 print("Température en Celsius :", celsius) else: print("Unité non valide")
Générateur de mot de passe aléatoire (simple) en python
Ce projet consiste à créer un générateur de mot de passe aléatoire qui génère un mot de passe de longueur spécifiée par l'utilisateur. On utilisera le module random
pour générer des caractères aléatoires. La création d'un générateur de mot de passe permet de se familiariser avec le module random
et les chaînes de caractères en Python.
import random import string longueur = int(input("Entrez la longueur du mot de passe : ")) caracteres = string.ascii_letters + string.digits + string.punctuation mot_de_passe = ''.join(random.choice(caracteres) for i in range(longueur)) print("Mot de passe généré :", mot_de_passe)
Il est important de noter que ces projets ont été simplifiés à des fins pédagogiques. Pour un générateur de mot de passe robuste en production, il est important de considérer un plus grand nombre de facteurs, comme la présence de caractères différents dans le mot de passe. Ces exemples de code Python vous donneront une base solide pour explorer des projets plus complexes.
Nous avons maintenant exploré les concepts clés pour débuter avec Python. La pratique est essentielle, donc essayez de mettre en œuvre ces exemples et d'explorer des variations pour mieux comprendre les concepts et renforcer vos compétences en code Python. Le meilleur moyen d'apprendre est de pratiquer régulièrement et d'expérimenter de nouvelles idées.
Vous avez maintenant une base solide pour explorer des sujets plus avancés en Python. N'oubliez pas que la programmation est un processus continu d'apprentissage et d'exploration. Plus vous pratiquerez, plus vous deviendrez compétent en code Python et en résolution de problèmes. La persévérance et la curiosité sont les clés du succès en programmation.
Pour aller plus loin, vous pouvez explorer des bibliothèques populaires comme requests
pour les requêtes HTTP, pandas
pour l'analyse de données et numpy
pour le calcul scientifique. Travailler sur des projets plus ambitieux vous permettra de mettre en pratique ce que vous avez appris et de développer de nouvelles compétences en développement web, en science des données et dans d'autres domaines de la programmation Python. Rejoindre une communauté Python vous permettra de partager vos connaissances, de poser des questions et de collaborer avec d'autres développeurs. Il est essentiel de continuer à apprendre et à se perfectionner pour rester à jour dans le monde de la programmation.
Voici quelques ressources utiles pour continuer votre apprentissage du code Python :
- Documentation Python officielle : https://docs.python.org/fr/3/
- OpenClassrooms : https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python
- Developpez.com : https://python.developpez.com/cours/