Python

Exemples Corrigés QCM Python – Concatenation de Chaînes de Caractères

Voici une série de questions à choix multiples (QCM) portant sur la concaténation de chaînes de caractères en Python, accompagnées de réponses détaillées et d’explications.


Question 1 : Concatenation avec l’opérateur +

Quel sera le résultat du code suivant ?

nom = "Alice"
age = 30
print(nom + " a " + age + " ans.")
  1. Alice a 30 ans.
  2. Erreur de syntaxe.
  3. Une erreur TypeError. ✅
  4. Rien n’est affiché.

Réponse : 3

La concaténation avec + ne fonctionne qu’avec des chaînes de caractères. Ici, age est un entier, ce qui provoque une TypeError.

Correction :

print(nom + " a " + str(age) + " ans.")  # Résultat : "Alice a 30 ans."

Question 2 : Utilisation de join()

Quel sera le résultat de ce code ?

mots = ["Python", "est", "formidable"]
phrase = " ".join(mots)
print(phrase)
  1. Une erreur TypeError.
  2. Python est formidable.
  3. Pythonestformidable.
  4. ['Python', 'est', 'formidable']

Réponse : 2

La méthode join() assemble les éléments de la liste en les séparant par le caractère spécifié (" " dans cet exemple).


Question 3 : F-Strings

Quel sera le résultat du code suivant ?

nom = "Bob"
ville = "Paris"
print(f"Bonjour, je suis {nom} et j'habite à {ville}.")
  1. Bonjour, je suis Bob et j'habite à Paris.
  2. Bonjour, je suis {nom} et j'habite à {ville}.
  3. Une erreur de syntaxe.
  4. Bonjour, je suis Bob et j'habite à Paris. (sans les guillemets)

Réponse : 1

Les f-strings permettent d’intégrer directement des variables dans une chaîne, avec une syntaxe lisible et concise.


Question 4 : Chaîne vide comme séparateur

Que retournera ce code ?

lettres = ["P", "y", "t", "h", "o", "n"]
resultat = "".join(lettres)
print(resultat)
  1. P y t h o n
  2. Python
  3. ['P', 'y', 't', 'h', 'o', 'n']
  4. Une erreur TypeError.

Réponse : 2

Un séparateur vide ("") signifie que les éléments de la liste seront joints sans espace entre eux.


Question 5 : Concaténation inefficace

Quel problème pourrait survenir avec ce code ?

mots = ["Python", "est", "rapide"]
resultat = ""
for mot in mots:
    resultat += mot + " "
print(resultat.strip())
  1. Le code est inefficace en termes de performances. ✅
  2. Une erreur TypeError sera levée.
  3. Le résultat sera incorrect.
  4. Une erreur de syntaxe.

Réponse : 1

Concaténer des chaînes dans une boucle avec += est inefficace, car une nouvelle chaîne est créée à chaque itération. Utilisez plutôt join() pour une meilleure performance.

Correction :

resultat = " ".join(mots)
print(resultat)  # Résultat : "Python est rapide"

Question 6 : Conversion de types

Quel sera le résultat du code suivant ?

elements = ["Python", 3, "est", "super"]
resultat = " ".join(elements)
print(resultat)
  1. Python 3 est super
  2. Une erreur TypeError. ✅
  3. ['Python', 3, 'est', 'super']
  4. Python est super (sans le chiffre 3)

Réponse : 2

Tous les éléments de l’itérable doivent être des chaînes pour utiliser join(). Ici, 3 est un entier, ce qui provoque une TypeError.

Correction :

resultat = " ".join(map(str, elements))
print(resultat)  # Résultat : "Python 3 est super"

Question 7 : Génération d’une Liste Numérotée

Quel sera le résultat de ce code ?

articles = ["Pommes", "Poires", "Bananes"]
resultat = "\n".join(f"{i + 1}. {article}" for i, article in enumerate(articles))
print(resultat)
  1. Une erreur de syntaxe.
  2. Une liste Python formatée.
  3. Une chaîne avec chaque article numéroté. ✅
  4. Rien n’est affiché.

Réponse : 3

Le code génère une chaîne avec chaque article numéroté, séparé par des retours à la ligne (\n).

Résultat :

1. Pommes
2. Poires
3. Bananes

Question 8 : Construction de Chemins

Quel est le résultat du code suivant ?

dossier = "/home/utilisateur"
sous_dossiers = ["documents", "projets", "python"]
chemin = "/".join([dossier] + sous_dossiers)
print(chemin)
  1. /home/utilisateur/documents/projets/python
  2. Une erreur TypeError.
  3. Une liste de dossiers formatée.
  4. Rien n’est affiché.

Réponse : 1

Le code concatène la liste des sous-dossiers avec le dossier racine, séparés par /.


Question 9 : Manipulation des Séparateurs

Quel sera le résultat du code suivant ?

lignes = ["ligne1", "ligne2", "ligne3"]
texte = "\n".join(lignes)
print(texte)
  1. ligne1ligne2ligne3
  2. Une erreur TypeError.
  3. Un texte séparé par des retours à la ligne. ✅
  4. Une erreur de syntaxe.

Réponse : 3

Chaque élément de la liste est joint avec un retour à la ligne (\n) comme séparateur.

Résultat :

ligne1
ligne2
ligne3

Question 10 : Ajout de Séparateurs Multiples

Quel est le problème potentiel de ce code ?

mots = ["Python", "", "est", "super"]
resultat = " ".join(mots)
print(resultat)
  1. Une erreur TypeError.
  2. Une chaîne correcte est générée.
  3. Des espaces superflus apparaissent. ✅
  4. Une erreur de syntaxe.

Réponse : 3

La chaîne contient des espaces supplémentaires à cause de l’élément vide dans la liste.

Correction : Filtrez les éléments vides avant d’utiliser join() :

resultat = " ".join(filter(None, mots))
print(resultat)  # Résultat : "Python est super"

Suite : QCM Python – Concatenation de Chaînes de Caractères

Voici une nouvelle série de QCM avancés pour approfondir vos connaissances sur la concaténation de chaînes en Python, avec des exemples plus complexes et des cas pratiques.


Question 11 : Utilisation d’une Fonction Lambda avec join()

Quel sera le résultat du code suivant ?

valeurs = [1, 2, 3, 4]
resultat = ", ".join(map(lambda x: f"#{x}", valeurs))
print(resultat)
  1. 1, 2, 3, 4
  2. #1, #2, #3, #4
  3. Une erreur TypeError.
  4. Une erreur de syntaxe.

Réponse : 2

La fonction lambda formate chaque élément de la liste valeurs en ajoutant un # devant. La méthode join() combine ensuite les éléments formatés avec , comme séparateur.


Question 12 : Chaînes Multi-lignes

Que retournera ce code ?

lignes = ["Python", "est", "génial"]
resultat = "\n".join(lignes)
print(resultat)
  1. Python est génial
  2. Python\nest\ngénial
  3. Une erreur TypeError.
  4. Chaque mot sera sur une ligne différente. ✅

Résultat :

Python
est
génial

Réponse : 4

La méthode join() utilise \n comme séparateur, plaçant chaque mot sur une nouvelle ligne.


Question 13 : join() avec des Dictionnaires

Quel sera le résultat du code suivant ?

data = {"nom": "Alice", "age": "30", "ville": "Paris"}
resultat = ", ".join(f"{cle}: {valeur}" for cle, valeur in data.items())
print(resultat)
  1. nom: Alice, age: 30, ville: Paris
  2. Une erreur TypeError.
  3. {'nom': 'Alice', 'age': '30', 'ville': 'Paris'}
  4. Alice, 30, Paris

Réponse : 1

La méthode join() assemble les paires clé-valeur du dictionnaire, chaque paire étant formatée comme clé: valeur.


Question 14 : Conversion Automatique des Types

Quel problème se pose dans ce code ?

nombres = [10, 20, 30]
resultat = ", ".join(nombres)
print(resultat)
  1. Une erreur TypeError. ✅
  2. Une chaîne de nombres est créée.
  3. Une liste de nombres séparés par des virgules est affichée.
  4. Rien ne s’affiche.

Réponse : 1

Tous les éléments doivent être des chaînes pour utiliser join(). Ici, les éléments sont des entiers, ce qui provoque une TypeError.

Correction :

resultat = ", ".join(map(str, nombres))
print(resultat)  # Résultat : "10, 20, 30"

Question 15 : Ajout Dynamique de Suffixes

Quel sera le résultat de ce code ?

fichiers = ["document1", "image2", "table3"]
resultat = ", ".join(f"{fichier}.txt" for fichier in fichiers)
print(resultat)
  1. document1, image2, table3
  2. document1.txt, image2.txt, table3.txt
  3. Une erreur TypeError.
  4. Une erreur de syntaxe.

Réponse : 2

La compréhension de liste ajoute .txt à chaque élément avant de les concaténer avec join().


Question 16 : Répétition avec join()

Que retourne ce code ?

mot = "Python"
resultat = "-".join(mot)
print(resultat)
  1. Python
  2. P-y-t-h-o-n
  3. -Python-
  4. Une erreur de syntaxe.

Réponse : 2

La méthode join() traite chaque caractère de la chaîne mot comme un élément distinct et les relie avec - comme séparateur.


Question 17 : Ajouter un Préfixe avec join()

Quel sera le résultat du code suivant ?

colonnes = ["Nom", "Prénom", "Âge"]
resultat = "\n".join(f"-> {col}" for col in colonnes)
print(resultat)
  1. Nom\nPrénom\nÂge
  2. -> Nom\n-> Prénom\n-> Âge
  3. Une erreur TypeError.
  4. Rien ne s’affiche.

Résultat :

-> Nom
-> Prénom
-> Âge

Question 18 : Optimisation avec des Générateurs

Quelle est l’avantage d’utiliser un générateur avec join() comme dans cet exemple ?

resultat = " ".join(str(i) for i in range(1000000))
  1. Cela provoque une erreur TypeError.
  2. Cela crée un tableau temporaire.
  3. Cela évite de créer un tableau temporaire. ✅
  4. Cela prend plus de mémoire.

Réponse : 3

Un générateur permet de produire les éléments un par un, sans créer une liste temporaire, ce qui économise de la mémoire.


Question 19 : Espaces Superflus

Quel problème pose ce code, et comment le corriger ?

mots = ["Python", "", "est", "génial"]
resultat = " ".join(mots)
print(resultat)
  1. Le code fonctionne correctement.
  2. Le résultat contient des espaces superflus. ✅
  3. Une erreur TypeError est levée.
  4. Une erreur de syntaxe.

Résultat Actuel :

Python  est génial

Correction : Utilisez filter() pour supprimer les chaînes vides :

resultat = " ".join(filter(None, mots))
print(resultat)  # Résultat : "Python est génial"

Question 20 : join() pour les Retours à la Ligne

Quel sera le résultat du code suivant ?

lignes = ["ligne1", "ligne2", "ligne3"]
resultat = "\n".join(lignes)
print(resultat)
  1. Une erreur de syntaxe.
  2. Chaque ligne est imprimée sur une nouvelle ligne. ✅
  3. ligne1ligne2ligne3
  4. Une erreur TypeError.

Résultat :

ligne1
ligne2
ligne3

Autres articles

Programmation Python dans la Pratique : Gestionnaire...
📌 Introduction La programmation en Python est idéale pour développer des...
Read more
Guide Pratique de Programmation en Python
Cet article explore un guide complet en programmation python et...
Read more
Série d'Exercices de Programmation python avec un...
Voici une série d'exercices de programmation en Python, classés par...
Read more
Maîtriser l'utilisation de la méthode join en...
La méthode join en Python est un outil puissant pour...
Read more
Comment Gérer Efficacement le Budget Mariage avec...
Télécharger un modèle Excel automatisé de budget mariage automatisé avec...
Read more
Manipulation des Tableaux en Python avec Numpy
Numpy est une bibliothèque puissante et efficace pour la manipulation...
Read more
AZ

Recent Posts

L’analyse thématique de contenu : définition, méthode et applications

Lisez un article structuré et clair sur l’analyse thématique de contenu, rédigé dans un ton…

3 heures ago

Réglementation ICPE : Qu’est-ce que c’est ? Checklist pour une Mise en Conformité

La réglementation ICPE (Installations Classées pour la Protection de l’Environnement) encadre les activités industrielles et…

4 heures ago

🛢️ Liste des Conteneurs de Stockage pour Produits Dangereux : Types, Usages et Conformités

Le stockage des produits dangereux ne peut être laissé à l’improvisation. La nature chimique, physique…

4 heures ago

Fiche de Stock des Produits Chimiques : Normes, Méthodologies et Armoires

Le stockage des produits chimiques constitue une étape critique dans la chaîne de sécurité des…

5 heures ago

Le commentaire de texte en philosophie : toutes les particularités de l’exercice

Le commentaire de texte philosophique est un exercice scolaire et universitaire qui consiste à expliquer,…

6 heures ago

La dissertation littéraire : genèse, rôle et technique – Trame à Suivre et Exemples

📜 Genèse de la dissertation littéraire La dissertation littéraire trouve ses origines dans la tradition…

11 heures ago

This website uses cookies.