Python : Attention aux types de données !
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 :
ou plus simplement :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)
a=int(input('Entrez la valeur de a : ')) b=int(input('Entrez la valeur de b : ')) c=5*a+3*b print(c)