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é :

TypeNotation PythonEn Français
Integerintnombre entier
Floatfloatnombre à virgule flottante
Stringstrchaine de caractère
Booleanboolboolé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 ».

réponse
nom = input("Quel est votre nom? ")
maPhrase = "Bonjour "+ nom
print(maPhrase)
[collapse]

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

réponse

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)
[collapse]

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.
réponse
age = int(input("Bonjour, quel est votre âge? "))
tempsAvantRetraite = 65 - age
print("Encore "+str(tempsAvantRetraite)+" ans avant la retraite!")
[collapse]

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 ?