Il peut être utile, voire nécessaire, de changer le type d'une variable. On appelle cela une conversion. Bien sur, une conversion n'est pas toujours possible.
Concernant les trois types de variables vus précédemment, on s'intéresse aux instructions suivantes:
float(a) convertit la variable a en un nombre de type float
int(a) convertit la variable a en un entier, type integer
str(a) convertit la variable a en une chaine de caractères, type string
exemple 1
Notez qu'à l'affichage, python utilise la notation 2.0 ou 7.0 pour distinguer une variable float d'une variable entière
Une fois les chaines de caractères b et c converties en nombres, il sera possible de faire des opérations numériques sur leurs valeurs
L'exemple 2 illustre la différence d'action de l'opérateur + selon qu'il agit sur des nombres ou sur des chaines de caractères. A la ligne 4, les variables a et b sont converties en integer avant d'être additionnées.
exemple 2
exemple 3
Comme l'illustre l'exemple 3, vous devrez porter une grande attention à l'ordre dans lequel vous composez vos instructions
Au niveau de l'affichage, rien ne distingue le résultat de l'instruction ligne 3 de celui de l'instruction ligne 5. Pourtant, le premier affichage est un nombre alors que le troisième est une chaine de caractères. C'est aussi le cas du dernier affichage d'ailleurs.
Il est toujours possible de "convertir" un nombre à virgule flottante en un entier. Si le nombre au départ possède une partie décimale non nulle, Python ne conservera que sa partie entière. Dans ce cas, il ne s'agit plus vraiment d'une conversion mais d'une troncature. Python ne génère donc pas de message d'erreur si le nombre float n'a pas de valeur entière au départ.
exemple 4
La table ASCII
La table ASCII (American Standard Code for Information Interchange) est une table de correspondance qui permet de coder certains caractères usuels par un simple nombre entier. Apparue dans les années 1960, elle reste encore largement répandue et son usage peut se révéler très commode dans de nombreux problèmes informatiques.
Ci-dessous, vous trouverez la correspondance des caractères les plus courants (les 128 premiers caractères)
Comment lire cette table ? A chaque entier entre 0 et 127 lui correspond un caractère. Lorsque l'affichage du caractère n'est pas clair, une abréviation entre parenthèses explique de quel caractère il s'agit. Par exemple:
à l'entier 9 correspond (tab), c'est à dire une indentation à droite
à l'entier 32 correspond (sp), c'est à dire un espace blanc
à l'entier 52 correspond le chiffre 4
à l'entier 88 la lettre majuscule X
L'instruction ord(caractère, type str) renvoie l'entier (int) qui correspond au caractère
L'instruction chr(entier, type int) renvoie le caractère (str) qui correspond à l'entier
exemple 5
exemple 6
Recopiez et exécutez le script présenté dans l'exemple 6. Il vous permettra d'afficher le code ASCII correspondant à un caractère donné.
Si vous entrez une chaine de caractères de longueur différente de 1, un message d'erreur apparait évidemment.
EXERCICES
Exercice 1: A l'aide de l'instruction input(), saisir un nombre entier au clavier puis afficher le message "Le chiffre des unités de son triple vaut.....", en complétant par la bonne valeur
Exercice 2: Ecrire un script qui permet d'afficher le caractère de la table ASCII correspondant à un entier préalablement saisi au clavier. Vous pourrez d'ailleurs constater en l'exécutant que la table comporte plus de 128 valeurs.
Exercice 3: A l'aide de l'instruction input(), saisir une lettre minuscule. Afficher ensuite la même lettre en majuscule
Correction exercice 1
# un script possible
n = int(input('entrez un entier au clavier: '))
triple = str(n*3)
unite = triple[len(triple)-1]
print('Le chiffre des unités de son triple est ',unite)
Correction exercice 2
# un script possible
numero = int(input('entrez un entier au clavier: '))
print('Le caractère ASCII correspondant est: ',chr(numero))
# remarque: parfois le caractère ne s'affiche pas car l'alphabet qui lui correspond n'est pas chargé en mémoire
Correction exercice 3
# un script possible. Ce script se base sur l'observation suivante: dans la tables ASCII, une lettre majuscule et la même lettre en minuscule sont en décalage de 32 unités.
L = input('entrez une lettre minuscule au clavier: ')
Lmaj=chr(ord(L)-32)
print('La meme lettre en majuscule est ',Lmaj)