Clara a saisi le programme suivant dans son éditeur Python :
a=input('Entrez la valeur de a : ')
b=input('Entrez la valeur de b : ')
c=5*a+3*b
print(c)
Elle exécute ensuite ce programme en entrant 10 comme valeur pour a et 5 comme valeur pour b.
Elle s’attend à obtenir 65 comme résultat.
-
Quel est, en réalité, le résultat affiché par le programme ?
Expliquez ce résultat. -
Corrigez ce programme afin qu’il affiche le résultat 65 prévu par Clara.
Corrigé
-
Lorsque l’on exécute le programme de Clara on obtient ‘1010101010555’ comme résultat.
En effet les valeurs entrées par Clara sont considérées comme étant des chaînes de caractères.
On a donc a=’10’ et 5*a=’1010101010′ (répétition de 10 cinq fois) ;
b=’5′ et 3*b=’555′ (répétition de 5 trois fois) ;
et 5*a+3*b=’1010101010555′ (concaténation). -
Pour que le programme fonctionne comme Clara le souhaiterait, il faut convertir a et b en un type numérique : int ou float.
Par exemple :
a=input('Entrez la valeur de a : ') b=input('Entrez la valeur de b : ') a=int(a) b=int(b) c=5*a+3*b print(c)ou plus simplement :
a=int(input('Entrez la valeur de a : ')) b=int(input('Entrez la valeur de b : ')) c=5*a+3*b print(c)