Comprendre les types et les variables en Python est une étape incontournable pour programmer avec confiance.
Python est réputé pour sa simplicité, mais cette simplicité repose sur des règles précises : comment une variable reçoit une valeur, comment son type est déterminé, et comment Python gère les conversions entre texte, nombres et booléens.
Ces notions reviennent dans tous les exercices, qu’il s’agisse de calculs, de saisie utilisateur ou de traitement de données.
Les QCM proposés dans cette thématique se concentrent sur ces bases : typage dynamique, types natifs (int, float, str, bool), opérations entre types différents, conversions et erreurs fréquentes.
Ils abordent aussi les conventions de nommage, la sensibilité à la casse et certaines fonctions essentielles comme type() ou len().
Maîtriser ces points permet d’éviter des erreurs classiques, de mieux comprendre les messages d’erreur et de poser des fondations solides pour progresser vers des scripts plus complets.
Comprendre les types et les variables en Python est une étape incontournable pour programmer avec confiance.
Python est réputé pour sa simplicité, mais cette simplicité repose sur des règles précises : comment une variable reçoit une valeur, comment son type est déterminé, et comment Python gère les conversions entre texte, nombres et booléens.
Ces notions reviennent dans tous les exercices, qu’il s’agisse de calculs, de saisie utilisateur ou de traitement de données.
Les QCM proposés dans cette thématique se concentrent sur ces bases : typage dynamique, types natifs (int, float, str, bool), opérations entre types différents, conversions et erreurs fréquentes.
Ils abordent aussi les conventions de nommage, la sensibilité à la casse et certaines fonctions essentielles comme type() ou len().
Maîtriser ces points permet d’éviter des erreurs classiques, de mieux comprendre les messages d’erreur et de poser des fondations solides pour progresser vers des scripts plus complets.
QCM
1
Corrigé
En Python, comment appelle-t-on le fait qu'une variable peut changer de type au cours de l'exécution ?
A. Le typage statique
B. Le typage dynamique
C. Le typage forcé
D. L'auto-conversion
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Python est dynamiquement typé, ce qui signifie qu'une variable peut successivement stocker un entier puis une chaîne.
QCM
2
Corrigé
Quel est le type de la variable x après l'exécution de : x = 10 ?
A. str
B. float
C. int
D. bool
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Le nombre 10 est un entier complet sans virgule, ce qui correspond au type 'int'.
QCM
3
Corrigé
Comment définit-on une chaîne de caractères (string) en Python ?
A. Entre guillemets simples ou doubles
B. Entre parenthèses
C. Uniquement entre guillemets doubles
D. Avec le mot-clé String
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Les chaînes de caractères (str) sont délimitées par ' ' ou " ", sans distinction de fonctionnement.
QCM
4
Corrigé
Quel sera le type de y après : y = 5.0 ?
A. int
B. str
C. complex
D. float
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
La présence du point décimal indique à Python qu'il s'agit d'un nombre à virgule flottante (float).
QCM
5
Corrigé
Quelle est la sortie de : print(type("123")) ?
A. <class 'int'>
B. <class 'str'>
C. <class 'float'>
D. <class 'number'>
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Même s'il contient des chiffres, le texte entre guillemets est traité comme une chaîne de caractères (str).
QCM
6
Corrigé
Quel opérateur est utilisé pour l'affectation d'une valeur à une variable ?
A. ==
B. :=
C. =
D. ->
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Le signe '=' simple est l'opérateur d'affectation, tandis que '==' est utilisé pour la comparaison.
QCM
7
Corrigé
Lequel de ces noms de variable est invalide en Python ?
A. ma_variable
B. _valeur
C. variable2
D. 2_variable
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Un nom de variable ne peut jamais commencer par un chiffre en Python.
QCM
8
Corrigé
Quel est le résultat de l'opération : x = "5" + "2" ?
A. "52"
B. 7
C. 52
D. Erreur de type
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
L'opérateur '+' entre deux chaînes de caractères réalise une concaténation (assemblage).
QCM
9
Corrigé
Comment convertir la variable x = "10.5" en un nombre à virgule ?
A. int(x)
B. float(x)
C. to_float(x)
D. decimal(x)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La fonction float() permet de transformer une chaîne compatible en nombre à virgule.
QCM
10
Corrigé
Quelle fonction permet de vérifier le type d'une variable ?
A. what()
B. kind()
C. type()
D. class()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La fonction intégrée type() renvoie la classe correspondant au type de la donnée passée en argument.
QCM
11
Corrigé
Lequel de ces types n'existe pas nativement en Python ?
A. int
B. float
C. str
D. long
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
En Python 3, le type 'long' a été fusionné avec 'int' qui gère désormais des entiers de taille arbitraire.
QCM
12
Corrigé
Quel est le résultat de : x = 10 / 2 ?
A. 5
B. 5.0
C. "5"
D. 5,0
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'opérateur '/' effectue toujours une division flottante en Python 3, retournant un float.
QCM
13
Corrigé
Comment écrit-on un booléen en Python ?
A. true
B. Vrai
C. True
D. 1
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les booléens s'écrivent obligatoirement avec une majuscule : True et False.
QCM
14
Corrigé
Que se passe-t-il si on fait : x = 5 + 2.0 ?
A. x vaut 7 de type int
B. x vaut 7.0 de type float
C. Une erreur survient
D. x vaut 7.0 de type int
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Python convertit automatiquement l'entier en float pour réaliser l'opération (promotion de type).
QCM
15
Corrigé
Comment peut-on affecter la même valeur à trois variables simultanément ?
A. a, b, c = 1
B. a = 1, b = 1, c = 1
C. a = b = c = 1
D. a & b & c = 1
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Python permet l'affectation multiple en cascade avec le signe '='.
QCM
16
Corrigé
Que signifie le terme 'Immuable' pour une chaîne de caractères ?
A. On peut la modifier lettre par lettre
B. Elle ne peut pas être affichée
C. Elle ne peut contenir que des chiffres
D. Elle ne peut pas être modifiée après création
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Les chaînes sont immuables ; toute modification crée en réalité une nouvelle chaîne en mémoire.
QCM
17
Corrigé
Lequel de ces noms respecte la convention 'snake_case' recommandée en Python ?
A. mon_age_utilisateur
B. MonAgeUtilisateur
C. monAgeUtilisateur
D. MON_AGE_UTILISATEUR
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Le snake_case utilise des minuscules et des underscores entre les mots.
QCM
18
Corrigé
Quel est le résultat de : x = int(3.9) ?
A. 3.9
B. 4
C. 3
D. Erreur
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La fonction int() tronque la partie décimale sans arrondir.
QCM
19
Corrigé
Comment créer une chaîne de caractères sur plusieurs lignes ?
A. Avec des crochets [ ]
B. Avec des triples guillemets """
C. Avec des parenthèses ( )
D. En utilisant le symbole #
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les triples quotes permettent d'inclure des retours à la ligne dans une chaîne.
QCM
20
Corrigé
Quel est le type de l'objet Resultat après : Resultat = (10 > 5) ?
A. int
B. float
C. str
D. bool
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Le résultat d'une comparaison est toujours une valeur booléenne (True ou False).
QCM
21
Corrigé
Que produit l'instruction : print("Echo" * 3) ?
A. Erreur
B. Echo3
C. EchoEchoEcho
D. Echo Echo Echo
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
L'opérateur '*' utilisé avec une chaîne et un entier répète la chaîne.
QCM
22
Corrigé
Comment convertir un nombre x = 10 en chaîne de caractères ?
A. str(x)
B. string(x)
C. txt(x)
D. char(x)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La fonction str() transforme n'importe quel objet compatible en sa représentation textuelle.
QCM
23
Corrigé
Lequel de ces caractères est autorisé dans un nom de variable ?
A. @
B. $
C. _
D. -
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
L'underscore '_' est le seul caractère spécial autorisé (hormis les chiffres et lettres).
QCM
24
Corrigé
Quel est le résultat de : x = 15 // 2 ?
A. 7.5
B. 7
C. 8
D. 1
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'opérateur '//' est la division entière ; il renvoie le quotient sans la partie décimale.
QCM
25
Corrigé
En Python, les variables sont-elles sensibles à la casse (majuscules/minuscules) ?
A. Seulement pour les chaînes
B. Oui
C. Non
D. Seulement pour les nombres
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Python est 'case-sensitive' : 'Variable' et 'variable' sont deux noms différents.
QCM
26
Corrigé
Que se passe-t-il si vous accédez à une variable qui n'a pas été définie ?
A. Elle vaut None
B. Elle vaut 0
C. NameError
D. TypeError
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Python lève une exception NameError si on tente d'utiliser une variable inexistante.
QCM
27
Corrigé
Comment vider le contenu d'une variable ou indiquer son absence de valeur ?
A. x = Null
B. x = 0
C. x = Void
D. x = None
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
None est l'objet spécial utilisé pour représenter le vide ou l'absence de valeur.
QCM
28
Corrigé
Quel est le résultat de : len("Python") ?
A. 5
B. 6
C. 7
D. 1
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La fonction len() renvoie le nombre de caractères présents dans une chaîne.
QCM
29
Corrigé
Quelle méthode permet de supprimer les espaces inutiles au début et à la fin d'une chaîne ?
A. trim()
B. clean()
C. strip()
D. remove()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La méthode .strip() nettoie les caractères d'espacement aux extrémités d'une chaîne.
QCM
30
Corrigé
Lequel de ces mots est un mot réservé de Python (ne peut pas être une variable) ?
A. value
B. while
C. result
D. data
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
'while' est un mot-clé réservé pour les boucles et ne peut pas servir d'identifiant.
Mots & Définitions
Consultez les définitions des termes importants.
Le typage dynamique signifie qu’une variable peut changer de type au cours de l’exécution. Le type est associé à la valeur, pas au nom de variable. Cela rend Python très flexible, mais demande de rester attentif aux conversions.
int est le type utilisé pour représenter les nombres entiers. Il sert notamment aux compteurs, aux indices et aux calculs sans virgule. En Python, les entiers peuvent être très grands, selon la mémoire disponible.
float représente un nombre à virgule en Python, comme 5.0 ou 10.5. Il est utile pour les mesures, les prix et les calculs décimaux. Il peut introduire de légères approximations, comme dans beaucoup de langages.
str est le type des chaînes de caractères en Python. Une chaîne se définit avec des guillemets simples ou doubles. Elle sert à manipuler du texte, des messages ou des données saisies par l’utilisateur.
L’affectation consiste à donner une valeur à une variable avec le symbole =. Elle crée ou met à jour la référence de la variable vers une valeur. Il ne faut pas la confondre avec la comparaison d’égalité.
type() permet de connaître le type d’une valeur ou d’une variable. Elle est très utile pour vérifier ce que contient réellement une donnée, notamment après une saisie utilisateur. Elle aide à comprendre et corriger des erreurs de typage.
La concaténation consiste à assembler des chaînes de caractères. Avec +, Python colle les textes l’un à la suite de l’autre, comme "5" + "2" qui devient "52". C’est différent d’une addition numérique.
La conversion de type transforme une valeur d’un type vers un autre, par exemple d’une chaîne vers un float. Elle est indispensable quand une valeur numérique est stockée sous forme de texte. En Python, float("10.5") est une conversion classique.
Un booléen est une valeur logique qui peut être True ou False. Il est utilisé dans les conditions et les comparaisons. Les expressions comme 10 > 5 produisent un booléen.
La promotion de type se produit lorsqu’une opération mélange des entiers et des décimaux. Python convertit alors l’entier en float pour conserver la précision, comme 5 + 2.0 qui donne 7.0. Cela évite une perte de partie décimale.
L’affectation multiple permet de donner une même valeur à plusieurs variables en une seule instruction. Par exemple, a = b = c = 1 attribue 1 aux trois variables. Cela rend le code plus concis et lisible.
Une chaîne est immuable lorsqu’elle ne peut pas être modifiée après sa création. Toute “modification” produit en réalité une nouvelle chaîne. Cette règle évite des effets de bord et stabilise le comportement des objets texte.
snake_case est une convention de nommage où les mots sont en minuscules séparés par des underscores. Elle est recommandée en Python pour les variables et fonctions. Elle améliore la lisibilité et respecte les usages de la communauté.
int() convertit un nombre en entier en supprimant sa partie décimale. Par exemple, int(3.9) devient 3, sans arrondir. Cette troncature est importante à connaître pour éviter des résultats inattendus.
Une chaîne multilignes permet d’écrire du texte sur plusieurs lignes dans le code. En Python, on la crée avec des triples guillemets. C’est pratique pour des messages longs ou des blocs de texte.
Python permet de répéter une chaîne avec l’opérateur *. Par exemple, "Echo" * 3 produit "EchoEchoEcho". C’est une écriture simple pour générer un motif répété.
L’underscore est autorisé dans les noms de variables en Python. Il sert souvent à séparer les mots dans le style snake_case. Il ne pose aucun problème de compatibilité et rend les noms plus lisibles.
L’opérateur // effectue une division entière et renvoie uniquement la partie entière du quotient. Par exemple, 15 // 2 donne 7. Il est utile lorsque l’on veut un résultat entier sans décimales.
Python est sensible à la casse, ce qui signifie que nom et Nom sont deux identifiants différents. Cette règle s’applique aux variables, fonctions et mots-clés. Elle impose une écriture rigoureuse, notamment pour True et False.
NameError est l’erreur levée lorsqu’on utilise un nom de variable qui n’existe pas. Elle indique que la variable n’a jamais été définie ou qu’il y a une faute de frappe. C’est une erreur fréquente chez les débutants.
None représente l’absence de valeur en Python. On l’utilise pour indiquer qu’une variable ne contient rien de significatif pour l’instant. C’est une valeur spéciale très utilisée dans les fonctions et les tests.
len() renvoie la longueur d’un objet, comme le nombre de caractères d’une chaîne. Par exemple, len("Python") vaut 6. C’est une fonction de base utile pour contrôler des tailles et des parcours.
strip() supprime les espaces inutiles au début et à la fin d’une chaîne. Elle est pratique pour nettoyer une saisie utilisateur. Elle renvoie une nouvelle chaîne, sans modifier l’originale.
Un mot-clé réservé est un mot qui a une signification spéciale dans Python. Il ne peut pas être utilisé comme nom de variable. Par exemple, while fait partie de ces mots essentiels au langage.
À propos de ce QCM
Cette série de QCM explore les mécanismes fondamentaux du typage et de la manipulation des variables en Python.
Le typage dynamique est une notion centrale : une variable peut référencer des valeurs de types différents au fil du programme.
Cela rend l’écriture très souple, mais demande de comprendre que le type dépend toujours de la valeur stockée à un instant donné.
Les QCM insistent sur les types essentiels.
int représente les entiers, float les nombres à virgule, str les chaînes de caractères et bool les valeurs logiques True/False.
Les fonctions type() et len() sont également importantes : la première sert à vérifier le type d’une donnée, la seconde à mesurer la longueur d’une chaîne.
Ces outils sont précieux pour diagnostiquer des problèmes de typage.
L’un des points les plus formateurs concerne les conversions.
Une saisie utilisateur ou une donnée stockée sous forme de texte doit souvent être convertie avant d’être utilisée en calcul, par exemple float("10.5") ou str(10).
Les QCM montrent aussi les effets des opérations mixtes : additionner un entier et un float conduit naturellement à un résultat float, car Python privilégie la conservation de la partie décimale.
Les chaînes de caractères sont abordées sous plusieurs angles : concaténation avec +, répétition avec *, écriture multilignes avec des triples guillemets, et nettoyage d’espaces avec strip().
On voit également un concept important, l’immuabilité des chaînes, qui explique pourquoi certaines “modifications” créent en réalité de nouveaux objets texte.
Enfin, les QCM rappellent les règles de nommage : pas de chiffre en début de variable, utilisation possible de l’underscore, respect du snake_case, et sensibilité à la casse.
Les erreurs comme NameError apparaissent lorsqu’un nom n’existe pas, et None permet de représenter l’absence de valeur.
Ensemble, ces notions renforcent la rigueur et la compréhension du comportement réel de Python.
Conclusion
Ces QCM offrent un excellent entraînement pour consolider les bases des variables et des types en Python.
Ils aident à comprendre le typage dynamique, les conversions, les opérations entre types et les erreurs les plus courantes.
En s’exerçant régulièrement, l’utilisateur gagne en précision, apprend à anticiper les pièges classiques et développe des réflexes solides pour écrire du code plus fiable.
Cette maîtrise des fondamentaux facilite ensuite l’apprentissage des structures de contrôle, des fonctions, puis des projets plus avancés en automatisation ou en analyse de données.