Introduction
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.
Exécutons le code suivant :
En Python, les variables ont toutes un type qui correspond à 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 :
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.
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)
Exercice 6
Écrire un programme qui demandera à l’utilisateur son nom et lui répondra : Bonjour Jack (si Jack est le nom entré par l’utilisateur).
Attention
il ne s’agit pas d’avoir un programme qui réponde « Bonjour Jack » à tous les coups, mais bien « Bonjour + nom saisi par l’utilisateur du programme ».
nom = input("Quel est votre nom? ") maPhrase = "Bonjour "+ nom print(maPhrase)
Comment « assembler » des variables de types différents ?
Premier exemple :
Il faut se méfier cependant de ce qui vient d’être dit sur la concaténation : testons maintenant :
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.
Exercice 7
Modifier le programme ci-dessous de façon à afficher au final : Hello12
Ici 2 solutions peuvent exister. La première est celle que vous avez probablement utilisé. La variable b est transformé en type chaine de caractères à l’aide des « ».
a = "Hello" b = "12" MonExpression = a + b print (MonExpression)
La deuxième solution consiste à utiliser la fonction str(b)
qui transforme un nombre en chaîne de caractères. l’étude de cette fonction fait partie du paragraphe suivant.
a = "Hello" b = 12 MonExpression = a + str(b) print (MonExpression)
Second exemple :
Reprenons l’exemple du programme :
- 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.
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.')
Exercice 8
Nous admettons ici que la retraite est fixée pour tous à 65 ans.
Écrire un programme qui :
- demandera à l’utilisateur son âge,
- lui annoncera en retour, en faisant une phrase, le nombre d’années de travail qu’il lui reste avant la retraite.
age = int(input("Bonjour, quel est votre âge? ")) tempsAvantRetraite = 65 - age print("Encore "+str(tempsAvantRetraite)+" ans avant la retraite!")
Troisième exemple :
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 :
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 ?