Qu’est-ce qu’une chaîne de caractères en Python ?
Une suite de caractères délimitée par des apostrophes ou des guillemets.
Pourquoi ne peut-on pas remplacer directement un caractère d’une chaîne Python ?
Les chaînes sont immuables.
Comment les opérateurs `and` et `or` évaluent-ils leurs opérandes ?
De gauche à droite, en s’arrêtant dès que le résultat est déterminé.
Que fournit `range(a, b, pas)` dans une boucle `for` ?
Les termes strictement inférieurs à .
Avec quel mot-clé définit-on une fonction Python ?
Avec `def`.
Combien de paramètres une fonction Python peut-elle prendre ?
Plusieurs paramètres.
Comment une fonction Python transmet-elle un résultat ?
Elle peut renvoyer des objets de différents types.
Quand une variable affectée dans une fonction est-elle globale ?
Lorsqu’elle est déclarée avec le mot-clé `global`.
Comment une liste Python est-elle définie et modifiée ?
Entre crochets, elle contient des éléments ordonnés, éventuellement de types différents, modifiables par accès.
Que fait `l + [a]` sans modifier `l` ?
Cette expression crée une nouvelle liste contenant `a` en plus.
Qu’est-ce qu’un tuple Python et ses éléments sont-ils modifiables ?
Un tuple est un n-uplet défini par des parenthèses ou des virgules, dont les éléments ne sont pas modifiables.
Quelles formes d’importation un module Python autorise-t-il ?
L’importation par nom, par alias ou l’importation directe d’objets.
Que font les modes « r », « w » et « a » lors de l’ouverture d’un fichier ?
« r » lit, « w » écrit après avoir vidé le fichier, et « a » ajoute à la fin en le créant si nécessaire.
Qu’est-ce qu’une assertion en programmation ?
Un contrôle exécuté par `assert` qui vérifie une condition et déclenche `AssertionError` si elle est fausse.
Quelles étapes composent la gestion générale d’une exception ?
La lever avec `raise`, puis éventuellement la récupérer avec `try` et `except`.
Que vérifient les tests par partitionnement et les tests aux limites ?
Le partitionnement teste une entrée représentative par sous-ensemble, tandis que les tests aux limites vérifient les bornes et leurs abords.
Comment un test d’appartenance dans une liste décide-t-il de son résultat ?
Il renvoie True dès qu’il trouve une égalité, sinon False à la fin du parcours.
Quelles bornes la recherche dichotomique maintient-elle dans une liste triée ?
Les bornes g et d.
Comment la recherche d’un mot dans une chaîne examine-t-elle les correspondances possibles ?
Elle teste les positions de départ et compare successivement les caractères du mot.
Comment le comptage avec chevauchement choisit-il les positions de départ ?
Il examine chaque position de départ successive.
Que mesure la complexité temporelle d’un algorithme ?
Le temps de calcul en fonction des données d’entrée.
Que décrit la complexité asymptotique lorsque la taille des entrées augmente ?
L’ordre de croissance du coût, en ignorant les constantes multiplicatives et les termes de moindre ordre.
Que signifie la notation pour un coût ?
Une minoration asymptotique par une constante multiple de .
Que doit établir l’invariant dans la preuve d’une boucle ?
Il doit être vrai à chaque passage de la boucle.
Comment prouve-t-on la terminaison d’une boucle while ?
À l’aide d’un variant entier strictement décroissant.
Quelles valeurs initiales utilise la division euclidienne par soustractions répétées ?
et .
Qu’est-ce qui distingue la taille d’un tableau de celle d’une liste dynamique ?
La taille d’un tableau est fixe, tandis que celle d’une liste dynamique peut varier.
Comment calculer l’adresse de l’élément en position k dans un tableau homogène contigu ?
Quel parcours faut-il effectuer pour atteindre la position k dans une liste simplement chaînée ?
Il faut parcourir les éléments précédents.
Quelle structure le type list de Python utilise-t-il ?
Un tableau d’adresses.
Quelle est la complexité amortie d’une insertion en fin de liste Python ?
Un temps constant amorti.
Quel principe de récupération caractérise une pile ?
LIFO : le dernier objet ajouté est le premier récupéré et supprimé.
Quel principe de récupération caractérise une file ?
FIFO : le premier objet arrivé est le premier récupéré et supprimé.
Comment définit-on un graphe orienté ?
est l’ensemble des sommets et l’ensemble des couples ordonnés appelés arcs.
Qu’est-ce qui distingue un arc d’une arête dans un graphe ?
Un arc est un couple ordonné, tandis qu’une arête est un ensemble de deux sommets sans ordre.
Quelles informations fournit un parcours en largeur depuis un sommet ?
Les distances minimales et un prédécesseur pour reconstruire un chemin.
Quelles sont les distances depuis A dans l’exemple de parcours en largeur ?
A est à 0, B et H à 1, C, D et I à 2, puis E, F et G à 3.
Comment le parcours en profondeur explore-t-il un graphe ?
Il avance aussi loin que possible depuis un sommet avant de revenir sur ses pas.
Que fait le parcours en profondeur quand aucun nouveau voisin n’existe ?
Il dépile le sommet et le marque comme épuisé.
Que calcule l’algorithme de Dijkstra depuis un sommet ?
Les plus courtes distances vers tous les autres sommets connexes.
Comment Dijkstra initialise-t-il les distances ?
À l’infini, sauf celle du sommet de départ, initialisée à zéro.
Selon quel critère l’algorithme A* choisit-il un sommet non exploré ?
Selon un coût combinant la distance parcourue et une heuristique vers la destination.
Quelle formule définit le coût d’un sommet S dans A* ?
Quelles valeurs représentent les booléens Python ?
True et False, correspondant respectivement aux entiers 1 et 0.
Quel opérateur Python effectue une division entière ?
L’opérateur `//`.
Quelle fonction Python renvoie la longueur d’une chaîne ?
`len(s)`.
Comment convertir généralement une valeur en un type Python visé ?
En utilisant le constructeur de ce type.
À quoi sert l’opérateur `lambda` dans une fonction Python ?
À définir une fonction simple sans nom explicite.
Quel élément d’une fonction englobante une fonction imbriquée peut-elle utiliser ?
Un argument de la fonction englobante.
Dans quel ordre Python recherche-t-il une variable utilisée dans une fonction ?
D’abord dans les portées locales et englobantes, puis dans la portée globale.
Que font les annotations de type d’une fonction Python lors d’un appel ?
Elles indiquent les types attendus sans que Python les contrôle.
Quelles opérations permettent de créer une liste Python ?
La création directe, la conversion d’un itérable, la concaténation, la copie, la répétition et la compréhension, éventuellement filtrée.
Comment accéder aux éléments et mesurer une liste Python ?
Les indices commencent à 0, les tranches sélectionnent une partie et `len(l)` donne la longueur.
Comment ajouter efficacement un élément à une liste Python ?
La méthode `append` est généralement préférable à une nouvelle liste créée avec `+`.
Que renvoie `pop(indice)` lorsqu’aucun indice n’est précisé ?
Le dernier élément de la liste.
Que se passe-t-il lorsqu’on modifie une liste partagée par deux variables Python ?
La modification est visible par les deux variables, qui désignent le même objet.
Qu’est-ce qu’un espace de noms en Python ?
Une zone mémoire propre où les objets d’un module sont placés sans se mélanger aux variables déjà affectées.
Quelles catégories d’outils le module math fournit-il ?
Des constantes et des fonctions mathématiques, notamment pour les racines, logarithmes, fonctions trigonométriques et hyperboliques.
À quoi servent numpy, matplotlib, deepcopy, os, random et time ?
Au calcul numérique, aux graphiques, à la copie profonde, au système, à l’aléatoire et à la mesure du temps.
Que font les méthodes read, readline et readlines d’un fichier ?
Elles lisent respectivement le contenu, une ligne et les lignes sous forme de liste.
Comment les champs d’un fichier CSV sont-ils généralement séparés ?
Par un élément fixe, avec certains champs éventuellement entourés de guillemets.
Comment choisir les noms des variables importantes et des constantes ?
Les variables importantes ont des noms explicites, et les constantes sont généralement en majuscules.
Que doivent documenter les commentaires dans un programme ?
Les parties non immédiates du programme.
Que documente une docstring placée après la définition d’une fonction ?
Son but, ses entrées, ses sorties et éventuellement des exemples.
Quelles erreurs usuelles sont citées en programmation ?
`IndexError`, `KeyError`, `NameError`, `ValueError` et `ZeroDivisionError`.
Quels cas examiner pour tester le maximum d’une liste ?
Une liste vide, une liste à un élément ou normale, des maxima aux extrémités ou répétés, et des éléments non comparables.
Quel indice renvoie une recherche de position si la valeur est absente ?
-1.
Que renvoie une recherche de position lorsqu’elle trouve la valeur ?
L’indice du premier élément égal à la valeur cherchée.
Comment un comptage d’occurrences dans une liste met-il à jour son compteur ?
Il l’incrémente à chaque élément égal à la valeur recherchée.
Que renvoie le comptage d’occurrences dans une liste ?
Le compteur final.
Comment la complexité maximale est-elle définie pour les entrées de taille n ?
C’est le coût le plus élevé parmi ces entrées.
Quelle est la complexité temporelle du maximum d’une liste parcourue séquentiellement ?
, donc aussi .
Quelles adresses contient chaque élément d’une liste doublement chaînée ?
Les adresses des éléments suivant et précédent.
Que faut-il faire pour supprimer un élément intermédiaire d’une liste Python ?
Décaler les cases.
Quel ordre de complexité a la concaténation de deux listes Python ?
L’ordre de leur taille totale.
Quelles opérations essentielles une pile doit-elle permettre ?
Créer une pile vide, tester sa vacuité, ajouter au sommet et récupérer en le supprimant l’objet du sommet.
Quelle méthode Python empile un objet dans une liste ?
append(x).
Quelle méthode Python dépile un objet d’une liste ?
pop().
Quelles données la pile d’exécution stocke-t-elle pour une fonction ?
Ses arguments, son adresse de retour, ses variables locales et sa valeur de retour.
Quelles méthodes de collections.deque permettent d’ajouter et retirer aux deux extrémités ?
append, appendleft, pop et popleft.
Quelle est la complexité d’accès aux extrémités d’un deque ?
O(1).
Comment calcule-t-on le degré total d’un sommet orienté ?
On additionne son degré entrant et son degré sortant.
Quelle propriété possède la matrice d’adjacence d’un graphe non orienté ?
Elle est symétrique.
Que contient la liste d’adjacence associée à un sommet ?
La liste de ses sommets adjacents ou successeurs.
Comment un dictionnaire Python représente-t-il les sommets déjà vus ?
Les sommets servent de clés, permettant des tests d’appartenance rapides et garantissant leur unicité.
Que représente la pile du parcours en profondeur ?
Le chemin en cours, du sommet de départ en bas au sommet exploré en haut.
Que signifie le statut 0 dans l’algorithme de parcours en profondeur ?
Le sommet n’a pas été vu.
Que signifie le statut 1 dans l’algorithme de parcours en profondeur ?
Le sommet est en cours sur le chemin.
Que signifie le statut 2 dans l’algorithme de parcours en profondeur ?
Le sommet est épuisé et n’a aucun successeur à explorer.
Que peut révéler un voisin encore en cours lorsqu’un sommet est épuisé ?
Un cycle dans le graphe non orienté, sans garantir la détection de tous les cycles.
Quel cycle révèle la chaîne A-B-C-E-D dans l’exemple ?
Le cycle BCDEB.
Quelle formule exprime la mise à jour d’une distance dans Dijkstra ?
Quel sommet enregistrer comme prédécesseur lors d’une amélioration de distance dans Dijkstra ?
Le sommet courant.
Quel outil peut accélérer le choix du sommet minimal dans Dijkstra ?
Une file de priorité.
Quelle condition une heuristique d’A* doit-elle respecter pour préserver l’optimalité ?
Elle ne doit pas surestimer la distance jusqu’à la destination.
À quelle condition un tuple peut-il servir de clé de dictionnaire en Python ?
Tous ses éléments doivent être hachables.
Teste tes connaissances avec un QCM de 58 questions sur Graphes et programmation dynamique.
1. Une chaîne Python doit contenir un retour à la ligne réel dans son texte ; quelle délimitation permet de l’écrire sur plusieurs lignes ?
2. Après avoir créé la chaîne `mot = "lune"`, une personne tente de remplacer son premier caractère avec `mot[0] = "L"` ; quel résultat faut-il attendre ?
Révisez le cours complet dans la fiche de révision de Graphes et programmation dynamique.
Voir la fiche →Importe ton cours et l'IA génère des flashcards en 30 secondes.
Générateur de flashcards