Fiche de révision : Algorithmique basique en Python

Plan du Cours

  1. Algorithmes et structures de contrôle
  2. Composants et grammaire des langages
  3. Types numériques et calculs
  4. Booléens et conditions
  5. Chaînes et conversions de types
  6. Entrées, sorties et affectation
  7. Affectations composées et parallèles
  8. Exécution et structures de contrôle
  9. Conception et trace d’un algorithme
  10. Expressions et opérateurs Python
  11. Listes et itérations
  12. Tuples et immutabilité
  13. Dictionnaires Python
  14. Références et mémoire des objets

1. Algorithmes et structures de contrôle

★ À maîtriser

  • 🔄 Le changement d’une roue suit les étapes suivantes :

    1. Sortir le cric, la manivelle et la roue de secours
    2. Monter la voiture sur le cric
    3. Démonter la roue
    4. Monter la roue de secours
    5. Enlever le cric
    6. Ranger le cric, la manivelle et la roue de secours
  • L’ordonnancement d’un algorithme peut être :

    • séquentiel
    • conditionnel
    • itératif

Compléments

  • Pour monter la voiture sur le cric, on l’installe à gauche si la roue crevée est à gauche, sinon à droite, puis on fait monter le cric.

  • Pour démonter une roue, on dévisse et retire chaque boulon, on le range, puis on retire la roue.

Astuce mémo

Pour changer une roue : préparer, soulever, démonter, remplacer, abaisser, ranger.

2. Composants et grammaire des langages

Notions clés & Définitions

  • Grammaire formelle : Définit précisément la syntaxe d’un langage de programmation.

★ À maîtriser

  • Un langage algorithmique comprend :
    • un lexique
    • une syntaxe
    • une sémantique
    • éventuellement une pragmatique

📌 Les terminaux sont les mots du langage, tandis que les non-terminaux désignent des structures syntaxiques à remplacer par une déclinaison possible.

Compléments

  • En BNF étendue, ::= signifie « par définition », | signifie « ou », + signifie « une fois ou plus », * signifie « zéro fois ou plus », [ ] signifie « au plus une fois » et ( ) sert à grouper.

3. Types numériques et calculs

★ À maîtriser

  • En Python, les variables ne sont pas limitées à un type de donnée, mais chaque donnée possède un type que la fonction type() permet de connaître.

  • Le type float représente des nombres à virgule flottante qui ne sont qu’une approximation limitée des réels.

  • Pour les entiers, / effectue une division flottante, // donne le quotient de la division entière, % donne son reste et ** calcule une puissance.

Compléments

  • Le type int représente les entiers relatifs et la taille des entiers Python 3 n’est pas limitée.

  • Les flottants Python sont généralement représentés en double précision IEEE 754, avec environ 15 chiffres décimaux significatifs et des exposants de l’ordre de 10±300.

📌 En Python, le quotient et le reste d’une division entière avec des opérandes négatifs peuvent différer de la division euclidienne mathématique et de la division entière de Java.

  • Les flottants peuvent perdre de petits termes lors de l’addition de nombres d’ordres de grandeur très différents, subir des erreurs lors de la soustraction de nombres proches et accumuler des erreurs au fil des calculs.

  • L’addition flottante n’est pas toujours associative, car l’arrondi ou la troncature peut produire des résultats différents selon le regroupement des opérations.

  • La valeur décimale 0.1 ne peut pas être représentée exactement en binaire, car 1/10 a une représentation périodique en base 2.

Astuce mémo

int compte exactement ; float approche les réels.

4. Booléens et conditions

★ À maîtriser

  • Le type bool possède les constantes True et False et les opérateurs logiques and, or et not.

  • Les opérateurs ==, !=, >, <, <= et >= comparent des valeurs et produisent un résultat booléen.

Compléments

  • En Python, None, les zéros numériques et les séquences ou collections vides sont considérés comme faux dans les tests et les opérations logiques.

  • Les opérateurs and et or peuvent renvoyer l’un de leurs opérandes non booléens au lieu de renvoyer systématiquement True ou False.

Astuce mémo

== compare des valeurs ; = affecte une valeur.

5. Chaînes et conversions de types

★ À maîtriser

  • Une chaîne Python est de type str et peut être délimitée par des guillemets doubles, des apostrophes ou des triples guillemets.

  • Le préfixe r d’une chaîne brute empêche l’interprétation des caractères spéciaux, tandis que le préfixe f permet d’insérer des expressions évaluées entre accolades.

  • La fonction str() convertit une valeur en chaîne, l’opérateur + concatène deux chaînes et une chaîne ne se concatène pas directement avec un nombre sans conversion explicite.

  • La fonction int() convertit une chaîne ou un flottant en entier, float() convertit une chaîne ou un entier en flottant, et str() convertit une donnée en chaîne lisible.

Compléments

  • Les triples guillemets permettent de définir une chaîne sur plusieurs lignes et d’y inclure des guillemets et des apostrophes.

  • Dans une chaîne, le caractère antislash introduit notamment les échappements \, ' et ", le retour à la ligne \n et les séquences Unicode \N{name} et \uxxxx.

  • Le préfixe u désigne une chaîne Unicode, type de chaîne utilisé par défaut en Python 3, tandis que le préfixe b désigne une séquence d’octets (de type bytes), pas nécessairement ASCII, que le cours conseille de ne pas utiliser.

📌 L’opérateur == teste l’égalité de deux valeurs, tandis que is teste l’identité de deux objets.

  • La fonction repr() produit une représentation textuelle non ambiguë dont la relecture par Python devrait restituer la valeur d’origine.

  • La fonction eval() interprète et exécute la chaîne passée en paramètre comme du code Python.

6. Entrées, sorties et affectation

Notions clés & Définitions

  • Affectation : Définit ou redéfinit la valeur désignée par une variable et s’écrit avec le symbole =.

★ À maîtriser

  • print() affiche les valeurs de ses expressions, les sépare par défaut avec un espace et ajoute par défaut un retour à la ligne ; les paramètres sep et end permettent de modifier ces séparateurs.

  • input() lit le texte saisi par l’utilisateur et le renvoie sous forme de chaîne de caractères, que int() ou float() peut convertir en valeur numérique.

Compléments

📌 La sortie fait quitter une valeur du programme vers l’utilisateur, tandis que l’entrée fournit une valeur de l’utilisateur au programme.

  • En Python, une déclaration de type telle que a : int est informative et n’empêche pas d’affecter à a une valeur d’un autre type.

Astuce mémo

input reçoit du texte ; print affiche des valeurs.

7. Affectations composées et parallèles

Points essentiels

  • Python propose notamment les opérateurs d’affectation composée suivants :

    • +=
    • -=
    • *=
    • /=
    • **=
    • //=
  • Une affectation parallèle comme x, y = y, x échange les valeurs des deux variables sans écrasement intermédiaire.

Astuce mémo

L’affectation parallèle échange les valeurs ; les affectations successives peuvent les écraser.

8. Exécution et structures de contrôle

★ À maîtriser

📌 Une structure conditionnelle Python utilise if pour tester une condition, elif pour tester une condition supplémentaire et else pour exécuter le cas restant, avec des instructions indentées.

📌 Une boucle while répète ses instructions tant que sa condition est vraie, tandis qu’une boucle for avec range parcourt des valeurs entières de la borne minimale incluse à la borne maximale exclue.

Compléments

  • En exécution séquentielle, les instructions s’exécutent dans l’ordre des lignes et leur indentation doit être conservée d’une instruction à la suivante.

  • Une instruction peut être coupée explicitement ou implicitement :

    • avec un antislash en fin de ligne
    • à l’intérieur de parenthèses
    • à l’intérieur de crochets
    • à l’intérieur d’accolades

Astuce mémo

while répète sous condition ; for avec range parcourt des bornes définies.

9. Conception et trace d’un algorithme

★ À maîtriser

  • Pour concevoir un algorithme indépendant, on résout d’abord un exemple simple à la main, on repère ensuite les données initiales et les variables qui évoluent, puis on identifie les répétitions et leur étape intermédiaire, et enfin on détermine la condition d’arrêt qui commande la poursuite de la boucle.

  • Pour tracer un programme à la main, on suit l’évolution des variables dans un tableau avec une colonne par variable et on réserve une zone distincte pour les valeurs entrées par l’utilisateur et l’affichage à l’écran.

Compléments

  • Dans une boucle while, la condition porte sur la poursuite de l’exécution ; on peut donc continuer tant que la négation du test d’arrêt est vraie.

Astuce mémo

Exemple à la main → variables d’entrée → étape répétée → condition d’arrêt.

10. Expressions et opérateurs Python

★ À maîtriser

  • La validité d’une expression opérée dépend de la compatibilité des types d’opérandes avec l’opérateur utilisé.

Compléments

  • En Python, un booléen fourni à un opérateur nécessitant un entier est converti implicitement en entier, avec False égal à 0 et True égal à 1.

  • En Python, un entier fourni à un opérateur nécessitant un flottant est converti implicitement en flottant.

📌 Python ne convertit pas implicitement un entier ou un flottant en chaîne pour une concaténation ; il faut convertir explicitement la valeur avec str().

  • La puissance ** est associative à droite : 2 ** 3 ** 2 vaut 2 ** (3 ** 2), soit 512.

📌 L’affectation est associative à droite, ce qui permet d’écrire a = b = 3 et d’affecter 3 aux deux variables.

11. Listes et itérations

Notions clés & Définitions

  • Liste : Collection modifiable d’éléments, définie entre crochets et pouvant contenir des objets de types différents.
  • Liste en compréhension : Nouvelle liste créée en appliquant une expression aux éléments d’un itérable qui satisfont une condition éventuelle.

★ À maîtriser

  • Les éléments d’une liste de n éléments sont indexés de 0 à n − 1, et l’accès à un élément se fait avec son indice entre crochets.

Compléments

  • Dans une tranche de liste, l’indice de début est inclus et l’indice de fin est exclu.

  • Les opérations élémentaires sur une liste comprennent :

    • la concaténation avec +
    • le test d’appartenance avec in ou not in
    • le comptage avec len
    • la suppression avec del
    • l’ajout en fin avec append
    • l’insertion à une position donnée avec insert
  • Les listes et les chaînes sont des objets itérables ; une boucle for peut parcourir leurs éléments successifs.

12. Tuples et immutabilité

Notions clés & Définitions

  • Tuple : Collection immuable d’éléments, définie entre parenthèses et dont les éléments sont accessibles comme ceux d’une liste.

Points essentiels

  • Une annotation tuple[int, int] indique un tuple contenant exactement deux entiers, tandis que tuple[int, ...] indique un nombre non spécifié d’entiers.

Astuce mémo

Liste modifiable entre crochets ; tuple immuable entre parenthèses.

13. Dictionnaires Python

Notions clés & Définitions

  • Dictionnaire Python : Collection de paires clé-valeur écrite entre accolades, où chaque clé est séparée de sa valeur par deux-points et les paires par des virgules.

★ À maîtriser

📌 Si une même clé apparaît plusieurs fois dans la définition d’un dictionnaire, seule sa dernière valeur est conservée.

  • La lecture ou l’écriture d’une valeur associée à une clé se fait en plaçant cette clé entre crochets après le dictionnaire.

Compléments

  • Dans un dictionnaire, les valeurs peuvent être de types quelconques et être répétées.

  • Certains types, comme les listes, ne sont pas autorisés comme clés de dictionnaire.

  • On ajoute une clé à un dictionnaire en lui affectant une valeur, on supprime une clé avec del, et len donne le nombre d’éléments du dictionnaire.

14. Références et mémoire des objets

★ À maîtriser

  • Lorsqu’une liste est affectée à une variable, la variable contient une référence vers la liste, qui est conservée ailleurs en mémoire.

📌 La pile contient les variables et leurs références, tandis que le tas contient les objets tels que les listes.

  • Lors de t2 = t1, la référence de t1 est copiée dans t2 ; les deux variables désignent alors la même liste, de sorte qu’une modification de cette liste via t2 est également visible via t1.

Compléments

  • Une trace distingue trois zones :
    • la zone écran, qui montre les affichages et les entrées utilisateur
    • la pile, qui contient les variables
    • le tas, qui contient les listes et autres objets

Astuce mémo

La pile porte les références ; le tas porte les objets.

Tableaux de synthèse

Comparaison entre listes et tuples

StructureModificationDélimiteurs
ListeModifiableCrochets
TupleImmuableParenthèses

Teste tes connaissances

Teste tes connaissances sur Algorithmique basique en Python avec 10 questions à choix multiples et corrections détaillées.

1. Concernant le changement d’une roue, cochez la (les) proposition(s) exacte(s) :

2. Un étudiant distingue les constituants d’un langage algorithmique et les symboles d’une grammaire. Parmi les propositions suivantes, laquelle(s) est(sont) exacte(s) ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Algorithmique basique en Python avec 10 flashcards interactives.

Quelles étapes principales composent le changement d’une roue ?

Sortir le matériel, lever la voiture, remplacer la roue, enlever le cric et ranger le matériel.

Quels sont les trois types d’ordonnancement d’un algorithme ?

Séquentiel, conditionnel et itératif.

Quels composants un langage algorithmique comprend-il ?

Un lexique, une syntaxe, une sémantique et éventuellement une pragmatique.

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