Types de variable

On l'a vu à la section précédente: une variable peut contenir des objets de types différents. Les deux types de contenu que nous avons rencontré jusqu'à présent sont: un nombre ou du texte. Lorsqu'on programme, il est important de savoir quel est le type de telle ou telle variable, car les actions que nous pouvons engager avec ces variables diffèrent selon leur type

1.Les nombres

Dans cette section, nous allons définir deux types de nombres: les nombres entiers et les nombres écrits avec une partie décimale.

  • Une variable qui contient un entier est de type integer (abréviation 'int' )

  • Une variable qui contient un nombre avec une partie décimale est de type float

Chacun de ces deux types peut contenir des valeurs négatives

exemple 1

L'instruction type(a) renvoie le type de la variable a

Notez que pour l'écriture décimale le séparateur est un point (comme dans les pays anglo-saxons) et pas une virgule.

Python est un langage très performant avec les nombres entiers car il peut effectuer des calculs avec des entiers très grands, sans en donner de valeur approchée. Par contre, avec le type float, python utilise un nombre de décimales limité

exemple 2

Les deux nombres a et b comportent 18 chiffres.

a est de type integer, b de type float.Python calcule exactement le carré de a mais donne une approximation (certes excellente tout de même !) du carré de b

De plus, à cause notamment des arrondis et des changements de base que l'ordinateur doit faire pour calculer en base 10, les opérations avec des nombres à virgule flottante (type float) génèrent parfois des résultats déroutants

exemple 3

2. Le texte

Une variable qui contient du "texte" est de type string (abréviation 'str'). En français, on dit : chaine de caractères

Un caractère est, grosso modo, un signe obtenu à l'aide votre clavier par exemple: il peut s'agir d'une lettre (majuscule ou minuscule), d'une lettre accentuée, d'un signe de ponctuation, d'un symbole opératoire, d'un caractère spécial ($, %, @, etc...)...

exemple 4

Lorsqu'on assigne un chaine de caractères à une variable, on utilise des guillemets. La chaine vide (variable d dans l'exemple 4) est aussi de type string

Retenez que l'instruction input() renvoie systématiquement une chaine de caractères, même si l'utilisateur décide de saisir un nombre. Pour s'en convaincre, on peut exécuter l'instruction suivante: print(type(input()))

Une chaine de caractères est une liste formée de plusieurs caractères successifs que l'on peut identifier grâce à leurs positions dans la chaine. On peut également connaitre la longueur de la chaine, c'est à dire le nombre total de caractères qui la composent

exemple 5

Dans l'exemple 5, l'instruction len() (de l'anglais length) renvoie la longueur d'une chaine.

En écrivant entre crochets le numéro de la position souhaitée (on dit l'indice), python renvoie le caractère correspondant. Comme vous pouvez le constater dans l'exemple 6, le mot 'position' compte 8 lettres numérotées de 0 à 7. La lettre d'indice 2 est donc la lettre en 3ème position: 's'

exemple 6

exemple 7

L' exemple 7 montre le message d'erreur qui apparait lorsque l'indice utilisé ne correspond pas à la position d'un caractère dans la chaine. En effet, len(a)=10 puisque le mot 'intervalle' comporte 10 lettres. On pourrait légitimement penser que a[10] est la lettre 'e'. Il n'en est rien puisque les indices autorisés sont en réalité les entiers entre 0 et 9

EXERCICES

Exercice 1: A l'aide de l'instruction input(), saisir le prénom de l'utilisateur puis afficher le message "Votre prénom commence par la lettre ... et se termine par la lettre....", en complétant par les bonnes valeurs

Exercice 2: A l'aide de l'instruction input(), saisir un nombre entier au clavier puis afficher le message "Le chiffre des unités vaut.....", en complétant par la bonne valeur

Correction exercice 1

# un script possible

prenom = input('Entrez votre prénom: ')

print('votre prénom commence par la lettre',prenom[0],'et se termine par la lettre', prenom[len(prenom)-1])


Correction exercice 2

# un script possible

nb = input('Entrez un nombre entier: ')

print('Le chiffre des unités vaut',nb[len(nb)-1]) # remarque: nb n'est pas une variable numérique, c'est une chaine de caractères