Types de variables

Conversions

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)