Sarmate.net Sarmate.net
Accueil Fonctionnalités Offres Documentation Contact
Connexion Inscription

Python dans le navigateur

Merci à la librairie MathPad basée sur Skulpt, vous pouvez intégrer du code Python exécutable directement dans vos pages HTML avec de simples balises <python>.

Simple et efficace Pas besoin de configuration complexe. Ajoutez simplement les librairies MathPad et utilisez les balises <python> pour créer des zones de code Python interactives.

Mise en place

Incluez les librairies nécessaires dans l'en-tête de votre page HTML :

HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ma page avec Python</title>

    <!-- JQuery (requis) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

    <!-- Python avec Skulpt -->
    <script src="https://skulpt.org/js/skulpt.min.js"></script>
    <script src="https://skulpt.org/js/skulpt-stdlib.js"></script>

    <!-- MathPad (CSS et JS) -->
    <link rel="stylesheet" href="https://www.sarmate.xyz/mathpad/mathpad.css">
    <script src="https://www.sarmate.xyz/mathpad/mathpad.js"></script>
</head>
<body>

    <!-- Votre contenu ici -->

</body>
</html>

Utilisation des balises Python

Une fois les librairies incluses, il suffit d'utiliser les balises <python> pour créer une zone de code Python exécutable :

HTML
<python>
# Ce code est modifiable et exécutable par l'utilisateurfor i in range(5):
    print("Bonjour " + str(i+1))

print("Fin du programme")
</python>

La balise <python> génère automatiquement :

  • Un éditeur de code avec coloration syntaxique
  • Un bouton "Exécuter" pour lancer le code
  • Une zone d'affichage pour les résultats
Tout est automatique L'utilisateur peut modifier le code Python, l'exécuter et voir le résultat directement dans la page. Aucun code JavaScript supplémentaire n'est nécessaire.

Exemple complet

Voici une page complète avec une zone de code Python :

HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Exercice Python - Factorielle</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script src="https://skulpt.org/js/skulpt.min.js"></script>
    <script src="https://skulpt.org/js/skulpt-stdlib.js"></script>
    <link rel="stylesheet" href="https://www.sarmate.xyz/mathpad/mathpad.css">
    <script src="https://www.sarmate.xyz/mathpad/mathpad.js"></script>
</head>
<body>

    <h1>Exercice : Calculer une factorielle</h1>

    <p>Complétez la fonction ci-dessous pour calculer la factorielle d'un nombre.</p>
    <p>Rappel : 5! = 5 × 4 × 3 × 2 × 1 = 120</p>

    <python>
# Complétez cette fonctiondef factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n - 1)

# Testsprint("5! =", factorial(5))
print("7! =", factorial(7))
print("0! =", factorial(0))
    </python>

</body>
</html>

Afficher du code Python (non modifiable)

Si vous souhaitez simplement afficher du code Python sans le rendre exécutable (par exemple pour montrer un algorithme), utilisez la balise <pythonImpr> :

HTML
<pythonImpr>
# Ce code est affiché avec coloration syntaxiquemais ne peut pas être exécuté ni modifié
def bubble_sort(list):
    for i in range(len(list)):
        for j in range(i+1, len(list)):
            if list[j] < list[i]:
                list[i], list[j] = list[j], list[i]
    return list
</pythonImpr>

Fonctionnalités Python supportées

Skulpt supporte une grande partie de Python 3 :

  • Variables et types : int, float, str, list, dict, tuple, set
  • Structures de contrôle : if/elif/else, for, while
  • Fonctions : def, return, paramètres par défaut, *args, **kwargs
  • Classes : class, héritage, méthodes
  • Modules intégrés : math, random, time, etc.
HTML
<python>
import math
import random

# Fonctions mathématiquesprint("Pi =", math.pi)
print("Square root of 2 =", math.sqrt(2))

# Nombres aléatoiresprint("Random number:", random.randint(1, 100))

# Listes et bouclesnumbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print("Squares:", squares)
</python>
Limitations Skulpt ne supporte pas certaines bibliothèques comme NumPy ou Pandas. Pour des calculs scientifiques avancés, préférez des solutions alternatives comme Pyodide.

Conseils pédagogiques

Pour les enseignants Les balises <python> sont idéales pour créer des exercices interactifs. Les élèves peuvent modifier le code, l'exécuter et voir immédiatement le résultat sans quitter la page.
  • Proposez du code à compléter avec des commentaires guidant l'élève
  • Ajoutez des tests print() pour vérifier les résultats
  • Combinez avec JSXGraph pour des exercices mathématiques visuels

Prêt à créer des exercices Python ?

Proposez des exercices de programmation interactifs à vos élèves

Créer un compte gratuit