Programmer avec Python
Les erreurs courantes
Ce que disent les messages, et comment les corriger.
Chaque erreur s'affiche en rouge dans la sortie, avec le numéro de ligne ; cliquer dessus surligne la ligne dans l'éditeur.
| Message | Pourquoi | Que faire |
|---|---|---|
« rayon » attend un nombre (tu as donné "30") | tu as écrit une chaîne à la place d'un nombre | rayon=30, sans guillemets |
« dents » va de 4 à 200 (tu as demandé 3) | valeur hors bornes | voir Bornes et limites |
Un engrenage a un nombre ENTIER de dents (tu as demandé 12.5) | les dents se comptent | dents=12 |
Le matériau « fer » n'existe pas. Ceux du labo : wood, steel… | nom inconnu | bois, caoutchouc, verre, glace, pierre, acier, or, helium, standard (ou l'anglais) |
Les étages vont de 0 à 15 (tu as demandé 16) | il n'y a que 16 étages | un étage entre 0 et 15 |
Un pivot relie 1 à 2 objets (tu en as donné 3). Pour rendre plusieurs pièces solidaires… | une charnière n'a que deux pièces | axe(...) ou soude=True |
Un pivot soudé ne tourne pas : il n'a ni moteur, ni frein, ni butées. | options incompatibles | retire moteur/frein/butees, ou retire soude |
Un pivot ne peut pas être à la fois moteur et freiné. | choisis | |
Une butée va du plus petit au plus grand angle (tu as donné 45 à -45). | butees=[min, max] | butees=[-45, 45] |
« to_ground » ne sert qu'avec deux objets | fixe_au_fond sur une charnière au monde | retire-le |
Deux engrenages n'engrènent que s'ils ont le MÊME module : ici 10 et 8. | modules différents | le même module |
Un engrenage ne peut pas engrener avec lui-même. | engrener(a, a) | deux roues |
Cet engrenage n'entraîne rien : il n'engrène avec aucun autre. | chaine() sur une roue seule | engrener() d'abord |
Un dessin demande au moins 3 points (tu en as donné 2). | trois points ou plus | |
« masse » se LIT mais ne se règle pas. Ce qui se règle : x, y, angle. | on ne peut régler que la position et l'angle | change le matériau à la création |
« vitesse » n'existe pas sur un objet. | propriété inconnue | voir Les objets |
tu as donné deux fois le même réglage, avec des valeurs différentes | rayon=30, radius=40 | un seul des deux |
cette fonction attend un objet du labo, pas 12 | tu as passé un nombre là où il faut un objet | la variable de la pièce |
Cet objet ne fait pas partie de la scène construite. | un objet d'un autre run | crée-le dans ce script, ou reprends-le avec scene.trouver() |
mech.inertia ne marche que sur un objet déjà dans la scène (scene.objects()) | l'inertie se lit sur le corps physique réel | après une exécution, via scene.objets() |
Ton programme crée plus de 500 objets — as-tu une boucle qui ne s'arrête pas ? | vérifie tes range() | |
NameError: name 'cerlce' is not defined | faute de frappe (Python) | l'autocomplétion : tape cer puis Tab |
TypeError: circle() got an unexpected keyword argument 'diametre' | paramètre inexistant (Python) | rayon= — voir la fiche de la fonction |