Fiche de révision : Types et fonctions Python

Plan du Cours

  1. Types et valeurs Python
  2. Nombres entiers et opérations
  3. Nombres flottants et approximations
  4. Chaînes et conversions
  5. Expressions et priorités
  6. Erreurs Python
  7. Définition et appel de fonctions
  8. Documentation et tests automatisés
  9. Exemples et tests automatisés
  10. Écriture des tests unitaires
  11. Tests de calculs approchés
  12. Interprétation des verdicts
  13. Choix et limites des tests

1. Types et valeurs Python

Notions clés & Définitions

  • Type : Ensemble des valeurs qu’une valeur peut prendre et les opérations qui lui sont applicables.
  • Valeur littérale : Manière d’écrire une valeur dans un langage informatique.

Points essentiels

  • Les types de base présentés sont:
    • int pour les entiers
    • float pour les nombres à virgule flottante
    • bool pour les booléens
    • str pour les chaînes de caractères

2. Nombres entiers et opérations

Notions clés & Définitions

  • Type int : Représente tous les nombres entiers relatifs, y compris les très grands.

★ À 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é.

  • Les opérateurs +, -, *, **, // et % permettent respectivement l’addition, la soustraction, la multiplication, la puissance, le quotient et le reste de la division euclidienne.

Compléments

📐 Formule — Dans une division euclidienne, a=b×q+ra = b \times q + r, où q est le quotient et r le reste obtenu avec a // b et a % b.

3. Nombres flottants et approximations

Notions clés & Définitions

  • Type float : Représente une approximation de certains nombres réels, car tous les nombres réels ne sont pas représentables par une valeur flottante.
  • Notation scientifique : La notation scientifique écrit successivement une mantisse en notation simple, le caractère e et un exposant indiquant une puissance de 10.

Points essentiels

📌 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.

4. Chaînes et conversions

Notions clés & Définitions

  • Chaîne de caractères : Séquence de caractères de longueur quelconque, pouvant notamment être vide.

Points essentiels

📌 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.

Astuce mémo

'314' est une chaîne, 314 est un entier

5. Expressions et priorités

Notions clés & Définitions

  • Expression : Valeur littérale ou combinaison d’expressions par des opérateurs, dont l’évaluation la réduit toujours à une valeur.

Points essentiels

📌 En Python, les parenthèses permettent de contrôler explicitement l’ordre d’évaluation d’une expression.

  • Les opérateurs de même priorité sont évalués de gauche à droite, sauf l’opérateur ** qui est évalué de droite à gauche.

📌 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.

Astuce mémo

Parenthèses → puissance → multiplication/division → addition/soustraction

6. Erreurs Python

★ À 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

  • 🔄 La correction d’une erreur consiste à:
    1. lire le nom de l’erreur
    2. lire son message
    3. identifier la portion de code en cause
    4. corriger le code

Astuce mémo

SyntaxError bloque l’écriture, ZeroDivisionError apparaît à l’exécution

7. Définition et appel de fonctions

Notions clés & Définitions

  • Fonction : Encapsule un calcul en identifiant les données nécessaires à l’appel tout en masquant la manière dont le calcul est réalisé.

Points essentiels

  • 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.

Astuce mémo

Signature → documentation → corps → return → appel

8. Documentation et tests automatisés

Notions clés & Définitions

  • Docstring : Chaîne entre triples guillemets placée immédiatement sous la signature d’une fonction pour documenter son comportement.

Points essentiels

📌 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.

Astuce mémo

Exemple → exécution → comparaison oracle → verdict

9. Exemples et tests automatisés

Notions clés & Définitions

  • Test automatisé : Exécute une expression, compare le résultat obtenu au résultat attendu et affiche un verdict.

★ À maîtriser

  • Dans la docstring de nb_cartons, les trois tests nbcartons(10,5)2,nb_cartons(10, 5) 2, 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

  • Cliquer sur « Exécuter tous les tests » exécute les tests et rend disponibles dans la console les fonctions et autres objets définis dans l’éditeur.

Astuce mémo

Exemple documenté → test exécuté → verdict affiché

10. Écriture des tests unitaires

Notions clés & Définitions

  • Test unitaire : Teste une unité de programmation indépendamment des autres, dans ce cours une fonction.

★ À maîtriser

📌 Un test L1Test s’écrit dans la docstring sous la forme de deux lignes consécutives, <expr>puis<exprattendue>,avecunespaceobligatoireapreˋsl’invite<expr> puis <expr_attendue>, avec un espace obligatoire après l’invite.

  • Les trois verdicts possibles sont:
    • succès
    • échec
    • erreur

Compléments

  • Les valeurs utilisées comme paramètres dans un appel de test, comme 10 et 5 dans nb_cartons(10, 5), sont appelées les données de test.

Astuce mémo

Expression → résultat attendu → comparaison

11. Tests de calculs approchés

★ À maîtriser

📐 Formule — Pour un test approché, le test passe si ∣obtenu−attendu∣≤tol|obtenu - attendu| \leq tol et échoue si ∣obtenu−attendu∣>tol|obtenu - attendu| > tol.

  • Le test $$$ tiers(10) approx(3.33, 1e-2) accepte une valeur proche de 3.33 avec une tolérance de 1e-2.

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.

Astuce mémo

Égalité exacte ≠ tolérance approx

12. Interprétation des verdicts

★ À 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.

  • Un test qui échoue peut révéler soit une erreur dans le code de la fonction, soit une erreur dans le test.

Compléments

  • Si une fonction sans instruction return est testée, Python renvoie None et les tests qui attendent une autre valeur échouent.

Astuce mémo

Succès, échec ou erreur : vert ou rouge

13. Choix et limites des tests

★ À 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.

Astuce mémo

Tests pertinents → confiance accrue, jamais preuve de correction

Tableaux de synthèse

Principaux types et opérateurs

TypeReprésentationOpérateurs ou usages
intNombres entiers+, -, *, **, //, %
floatApproximation de nombres réels+, -, *, **, /
strSéquence de caractères+ concaténation, * répétition

Verdicts L1Test

VerdictConditionAffichage
SuccèsRésultat obtenu égal au résultat attenduVert
ÉchecRésultat obtenu différent du résultat attenduRouge
ErreurÉvaluation d’une expression déclenchant une erreurRouge

Teste tes connaissances

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 ?

Faire le QCM →

Révisez avec les flashcards

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.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches