Une saisie qui refuse le texte
Exercice supplémentaire · niveau 2 · sciences numériques et technologie (seconde), chapitre 2 — Variables, types et affectations · Entrées et sorties
Énoncé
Que se passe-t-il si l'utilisateur tape abc alors que le programme fait int(input(...)) ? Observer le message, puis expliquer en quoi cette interruption est préférable à un résultat silencieux.
Corrigé
L'exécution s'arrête sur :
ValueError: invalid literal for int() with base 10: 'abc'
Python refuse de deviner. C'est une bonne nouvelle : l'erreur est signalée à l'endroit exact où elle se produit, avec la valeur fautive.
Le contraste est instructif avec l'oubli de conversion vu en application directe : là, 4 * "5.5" ne provoque aucune erreur et produit "5.55.55.55.5". Le programme continue avec une valeur absurde, et la faute ne sera découverte que bien plus loin, voire jamais. Une erreur bruyante vaut mieux qu'un résultat faux silencieux — c'est un principe qui dépasse largement ce chapitre.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.