All guides
IntermediateSelf-pacedFree GuideSection 15/95

Python — Variables, types et opérateurs

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and 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)
Quick Check

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

Quick Check

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

Quick Check

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

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.