Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 15/95

Python — Variables, types et opérateurs

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 11.1.15 : Python — Variables, types et opérateurs

🎯 Objectif pédagogique

Apprendre les fondamentaux de Python : variables, types de données, opérateurs et les particularités du langage. Vous serez capable d'écrire des scripts Python basiques et de comprendre pourquoi Python est le langage de référence pour la data science et l'IA.


Pourquoi Python en plus de JavaScript ?

Marc se demandait : pourquoi apprendre un deuxième langage ? Réponse courte : chaque langage a son domaine de force.

DomaineLangage dominant
Frontend webJavaScript (le seul)
Backend webJavaScript (Node.js), Python, Go
Data sciencePython (imbattable)
Machine learning / IAPython (95% des projets)
AutomatisationPython (scripts et bots)
DevOpsPython, Bash, Go

Python est LE langage de l'IA — et dans un bootcamp "Tech & AI Foundations", c'est obligatoire.

La philosophie Python

import this    # "The Zen of Python"
# "Beautiful is better than ugly."
# "Explicit is better than implicit."
# "Simple is better than complex."
# "Readability counts."

Python est conçu pour être lisible — le code ressemble presque à de l'anglais. L'indentation n'est pas optionnelle : elle DÉFINIT la structure du code (pas d'accolades {}).

Variables et types

# Pas de déclaration de type explicite (typage dynamique)
name = "Marc Dupont"         # str (chaîne de caractères)
age = 34                      # int (entier)
salary = 65000.00             # float (décimal)
is_student = True             # bool (True/False avec majuscule !)
skills = ["HTML", "CSS"]      # list (tableau)

# Python devine le type automatiquement
print(type(name))      # <class 'str'>
print(type(age))       # <class 'int'>
print(type(skills))    # <class 'list'>

# Conversion de type
age_str = str(age)             # "34"
price_float = float("99.99")  # 99.99
count = int("42")              # 42

Strings (chaînes)

# Création
simple = 'Bonjour'
double = "Marc"
multiline = """
Ceci est un texte
sur plusieurs lignes
"""

# f-strings (interpolation) — Python 3.6+
greeting = f"Bonjour \{name\}, vous avez \{age\} ans"
calc = f"2 + 2 = \{2 + 2\}"

# Méthodes utiles
"hello world".upper()          # "HELLO WORLD"
"HELLO WORLD".lower()          # "hello world"
"  espace  ".strip()           # "espace"
"Marc Dupont".split(" ")       # ["Marc", "Dupont"]
", ".join(skills)              # "HTML, CSS"
"hello".replace("l", "r")     # "herro"
len("Marc")                     # 4

# Slicing
text = "Python"
text[0]      # "P"
text[-1]     # "n"
text[0:3]    # "Pyt"
text[2:]     # "thon"
text[::-1]   # "nohtyP" (inversé)

Listes et tuples

# Liste (mutable — modifiable)
skills = ["HTML", "CSS", "JavaScript"]
skills.append("Python")         # Ajouter à la fin
skills.insert(0, "Git")         # Insérer au début
skills.remove("Git")            # Retirer par valeur
last = skills.pop()             # Retirer le dernier
print(len(skills))              # Longueur
print("CSS" in skills)          # True

# Compréhension de liste (très Pythonique)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = [n for n in numbers if n % 2 == 0]           # [2, 4, 6, 8, 10]
squares = [n**2 for n in numbers]                       # [1, 4, 9, 16, ...]
names_upper = [s.upper() for s in skills]              # ["HTML", "CSS", ...]

# Tuple (immutable — non modifiable)
coordinates = (48.8566, 2.3522)   # Paris
lat, lng = coordinates             # Déstructuration

Dictionnaires

# Dictionnaire (équivalent de l'objet JS)
profile = \{
    "name": "Marc Dupont",
    "age": 34,
    "skills": ["HTML", "CSS", "Python"],
    "is_active": True
\}

# Accès
print(profile["name"])              # "Marc Dupont"
print(profile.get("email", "N/A"))  # "N/A" (valeur par défaut)

# Modification
profile["age"] = 35
profile["email"] = "marc@email.com"

# Itération
for key, value in profile.items():
    print(f"\{key\}: \{value\}")

Opérateurs

# Arithmétiques
10 + 5      # 15
10 - 5      # 5
10 * 5      # 50
10 / 3      # 3.333... (division flottante)
10 // 3     # 3 (division entière)
10 % 3      # 1 (modulo)
2 ** 10     # 1024 (puissance)

# Comparaison
10 == 10    # True
10 != 5     # True
10 > 5      # True

# Logiques (en anglais, pas de symboles !)
True and True    # True
True or False    # True
not True         # False

# Identité
x = [1, 2]
y = [1, 2]
x == y          # True  (même valeur)
x is y          # False (objets différents en mémoire)

JavaScript vs Python — Les pièges

Plusieurs différences surprennent les débutants :

  • →Indentation : Python utilise l'indentation (4 espaces), JS utilise les accolades
  • →Booléens : Python = True/False, JS = true/false
  • →Logique : Python = and/or/not, JS = &&/||/!
  • →None vs null : Python = None, JS = null/undefined
  • →Print : Python = print(), JS = console.log()

🏋️ Exercice pratique (20 minutes)

# Profil de Marc en Python
profile = \{
    "name": "Marc Dupont",
    "age": 34,
    "previous_job": "Analyste financier",
    "goal": "Développeur Full-Stack",
    "skills": ["HTML", "CSS", "JavaScript"],
    "week": 1
\}

# 1. Afficher le profil formaté
for key, value in profile.items():
    print(f"\{key:>15\} : \{value\}")

# 2. Ajouter Python aux skills
profile["skills"].append("Python")
print(f"\nCompétences : \{', '.join(profile['skills'])\}")

# 3. Compréhension de liste : skills en majuscules
upper_skills = [s.upper() for s in profile["skills"]]
print(f"Majuscules : \{upper_skills\}")

# 4. Fonction progression
def show_progress(p):
    bar = "█" * (p["week"] * 4) + "░" * ((5 - p["week"]) * 4)
    percent = p["week"] / 5 * 100
    print(f"\nProgression : [\{bar\}] \{percent:.0f\}%")
    print(f"Semaine \{p['week']\}/5 — \{len(p['skills'])\} skills acquises")

show_progress(profile)
Vérification rapide

Quelle est la différence entre une liste et un tuple en Python ?

Vérification rapide

Que produit l'expression : [n**2 for n in range(5)] ?

Vérification rapide

En Python, comment vérifier si un élément est dans une liste ?

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.