Les variables ne contiennent pas forcément des nombres. Elles peuvent aussi stocker des chaînes de
caractères et bien d'autres types de données : listes de nombres, valeurs booléennes (vrai ou faux), et bien d'autres types encore.
Tapons dans l'interpréteur :
>>> a = "Hello World ! "
>>> print (a)
En Python, les variables ont toutes un type qui correspend à la nature de la valeur stockée dans la variable : nombre entier, nombre réel, chaîne de caractères, booléen (Vrai ou Faux), …
Contrairement à beaucoup d'autres langages, en Python, il n'est pas nécessaire de déclarer le type des variables lors de leur création : Python attribue automatiquement un type à une variable lors de sa création.
La fonction type() permet de connaître le type d'une variable. Testons ces quelques lignes :
>>> a = "Salut !"
>>> b = 36
>>> c = 5.87
>>> d = '42'
>>> print (type(a))
>>> print (type(b))
>>> print (type(c))
>>> print (type(d))
--> En résumé :
Type
Notation Python
En Français
Integer
int
nombre entier
Float
float
nombre à virgule flottante
String
str
chaine de caractère
Boolean
bool
booléen
A retenir :
Les chaînes de caractères se notent entre guillemets ou apostrophes, sauf lors des inputs.
2) La concaténation des chaînes de caractères.
L'utilisation du signe + ne se limite pas à l'addition. Il est aussi utilisé pour la concaténation.
Le terme concaténation désigne l'action de mettre bout à bout au moins deux chaînes de caractères.
Tapons dans l'interpréteur :
>>> a = "Hello"
>>> b = " World !"
>>> MonExpression = a + b
>>> print (MonExpression)
3) Comment « assembler » des variables de types différents ?
a) Premier exemple :
Il faut se méfier cependant de ce qui vient d'être dit sur la concaténation : testons maintenant :
>>> a = "Hello"
>>> b = 12
>>> MonExpression = a + b
>>> print (MonExpression)
Comme vous pouvez le constater votre programme renvoie une erreur.
En Python, il n'est pas toujours possible d'utiliser le signe + avec des variables de types différents.
- demander à l'utilisateur son âge.
- calculer l'âge qu'il aura dans deux ans.
- afficher le message : dans 2 ans, vous aurez : …. ans.
Imaginons que nous disposions de l'âge de notre utilisateur dans deux ans, stocké dans une variable de type entier "age". L'exemple précédent nous porte à penser qu'une instruction finale du genre de :
print ("Dans 2 ans, vous aurez : " + age + " ans.")
va aboutir à un message d'erreur : elle additionne des variables du type chaîne de caractères (entre guillemets), et la variable "age", qui est du type nombre entier.
Python nous donne une solution à ce type de problème avec les fonctions de conversion du type.
c) Fonctions de conversion du type :
Pour remédier au problème évoqué ci-dessus, nous disposons dans Python de fonctions de conversion des variables entre les différents types (dites, "fonctions de transtypage") :
la fonction str() : convertit une variable en chaîne de caractères.
la fonction int() : convertit une variable en nombre entier.
la fonction float() : convertit une variable en nombre réel (encore appelé nombre à virgule flottante).
Testons les quelques lignes suivantes :
>>> age = 15
>>> print ('Vous avez ' + age + ' ans.')
Puis :
>>> age = 15
>>> age = str(age)
>>> print ('Vous avez ' + age + 'ans.')
Comme nous l'avons constaté dans l'exercice 3, le même type de problème se pose lors des saisies au clavier réalisées par l'utilisateur à la suite d'une instruction input() dans le programme :
la fonction input() (utilisée pour demander la valeur d'une variable à l'utilisateur) renvoie toujours une chaîne de caractères.
On souhaite maintenant écrire un programme qui demande à l'utilisateur d'entrer 2 nombres et affiche le résultat de l'addition de ces 2 nombres. Saisir et sauver le programme suivant :
a = input('Premier nombre ?')
b = input('Second nombre ?')
somme = a + b
print(somme)
Testez le programme avec différentes valeurs de a et b :
Quel résultat obtenons-nous ? Est-ce le résultat souhaité ?
Pour le programme, de quel type sont les variables a et b ?
Quelle opération est donc effectuée par le symbole + ?
Que faut-il faire sur les variables a et b pour pouvoir ensuite les additionner ?