★ À maîtriser
📌 Les littéraux entiers Python s’écrivent en base 10 sans séparateur de milliers ni zéro initial, sauf pour le nombre 0, mais le séparateur _ est autorisé.
Compléments
📐 Formule — Dans une division euclidienne, , où q est le quotient et r le reste obtenu avec a // b et a % b.
📌 Un littéral flottant en notation simple utilise obligatoirement un point comme séparateur décimal, et peut omettre le zéro de la partie entière, comme dans .5.
La division flottante / produit toujours une valeur de type float, même lorsque ses deux opérandes sont de type int.
Les calculs flottants sont des approximations : par exemple, 0.1 + 0.2 produit 0.30000000000000004.
📌 Un littéral de chaîne s’écrit entre apostrophes ou guillemets, et la chaîne vide s’écrit ''.
L’opérateur + concatène deux chaînes en les mettant bout à bout, tandis que l’opérateur * répète une chaîne un nombre entier de fois.
Les fonctions str(), int() et float() convertissent respectivement une valeur en chaîne, une chaîne numérique en entier et une chaîne numérique en flottant lorsque le contenu est acceptable.
'314' est une chaîne, 314 est un entier
📌 En Python, les parenthèses permettent de contrôler explicitement l’ordre d’évaluation d’une expression.
📌 Les opérandes numériques permettent l’addition et la multiplication, tandis que str + str réalise une concaténation et str * int réalise une répétition.
Parenthèses → puissance → multiplication/division → addition/soustraction
★ À maîtriser
📌 Une erreur de syntaxe survient lorsque le code ne respecte pas les règles d’écriture de Python, tandis qu’une erreur d’exécution survient après une syntaxe correcte lorsque l’opération ne peut pas être réalisée.
📌 Une division euclidienne par zéro provoque l’erreur d’exécution ZeroDivisionError.
Compléments
SyntaxError bloque l’écriture, ZeroDivisionError apparaît à l’exécution
La signature d’une fonction indique son nom, le nom, le type et l’ordre de ses paramètres, ainsi que le type de retour.
Lors de l’appel d’une fonction, les expressions fournies sont évaluées, leurs valeurs sont associées aux paramètres, puis l’expression suivant return est évaluée et renvoyée.
📌 La fonction nb_cartons renvoie nb_objets // places_par_carton, avec la précondition nb_objets >= 0 et places_par_carton > 0.
📌 Les blocs de code Python sont délimités par l’indentation, qui doit rester cohérente au sein du programme.
Signature → documentation → corps → return → appel
📌 La précondition d’une fonction est la condition que ses paramètres doivent respecter avant l’appel pour que celui-ci ait un sens.
Un test automatisé exécute un appel, compare la valeur obtenue à la valeur attendue grâce à un oracle, puis produit un verdict.
Dans L1test, un test passe lorsque la valeur obtenue par l’appel est égale à la valeur attendue.
Exemple → exécution → comparaison oracle → verdict
★ À maîtriser
Dans la docstring de nb_cartons, les trois tests nb_cartons(11, 5) 2 et $$$ nb_cartons(0, 5) 0 documentent les résultats attendus.
L1Test exécute l’appel, compare la valeur obtenue à la valeur attendue grâce à un oracle, puis fournit un verdict.
Compléments
Exemple documenté → test exécuté → verdict affiché
★ À maîtriser
📌 Un test L1Test s’écrit dans la docstring sous la forme de deux lignes consécutives, .
Compléments
Expression → résultat attendu → comparaison
★ À maîtriser
📐 Formule — Pour un test approché, le test passe si et échoue si .
Compléments
📌 Dans L1Test, approx(<expr>) utilise par défaut une tolérance de 1e-6, ce qui équivaut à approx(<expr>, 1e-6).
📌 La fonction approx est utilisable directement dans les L1tests, mais son utilisation dans l’interpréteur produit une erreur NameError.
Égalité exacte ≠ tolérance approx
★ À maîtriser
📌 Un test qui viole la précondition peut être en erreur, comme nb_cartons(5, 0), qui provoque une division par zéro.
📌 Des tests au vert augmentent la confiance dans le code mais ne prouvent pas qu’il est correct, car certaines erreurs peuvent ne pas être détectées.
Compléments
Succès, échec ou erreur : vert ou rouge
★ À maîtriser
📌 Pour choisir un jeu de tests, il faut sélectionner des valeurs représentatives des différents comportements et des valeurs aux limites du domaine.
Compléments
Pour nb_cartons, les tests 10 objets avec 5 places et 11 objets avec 5 places illustrent respectivement le remplissage complet et la présence d’objets restants.
Le test nb_cartons(0, 5) vérifie que la valeur limite 0 est acceptable pour le paramètre nb_objets.
Les tests automatisés servent de filet de sécurité, notamment pour détecter automatiquement une régression après une modification du code.
Tests pertinents → confiance accrue, jamais preuve de correction
| Type | Représentation | Opérateurs ou usages |
|---|---|---|
| int | Nombres entiers | +, -, *, **, //, % |
| float | Approximation de nombres réels | +, -, *, **, / |
| str | Séquence de caractères | + concaténation, * répétition |
| Verdict | Condition | Affichage |
|---|---|---|
| Succès | Résultat obtenu égal au résultat attendu | Vert |
| Échec | Résultat obtenu différent du résultat attendu | Rouge |
| Erreur | Évaluation d’une expression déclenchant une erreur | Rouge |
Teste tes connaissances sur Types et fonctions Python avec 40 questions à choix multiples et corrections détaillées.
1. Quelles informations un type Python définit-il pour les valeurs qu’il décrit ?
2. Quel type Python correspond à une chaîne de caractères ?
Mémorisez les concepts clés de Types et fonctions Python avec 69 flashcards interactives.
Qu'est-ce qu'un type en programmation ?
Un type définit les valeurs possibles et les opérations applicables.
Quels sont les types de base en Python ?
int, float, bool et str sont les types de base.
Que désigne une valeur littérale en informatique ?
Une valeur écrite directement dans le code.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches