• Aucun résultat trouvé

Littéraux numériques

Dans le document Python Python (Page 95-99)

Il existe trois types de littéraux numériques pour représenter des valeurs :

• les entiers simples ou longs ;

• les valeurs à virgule flottante ;

• les nombres complexes.

n Saut de ligne >>>print('ok\ncorral')

ok corral r Retour chariot, souvent placé avant

un saut de ligne sur les plates-formes Windows.

Le code de fin de de ligne (EOL) varie d’une plate-forme à l’autre (Mac : '\r', Windows : '\r\n', Unix: '\n') mais

\ Antislash ou backslash >>>print('le fichier est dans c:\\fichiers\\')

b Backspace >>>print('parfois je mange mes \b\b\b\b\b

mots')

parfois je mange mots nnn Valeur octale sur trois chiffres >>>print('\124out à fait')

Tout à fait xHH Valeur hexadécimale sur deux

chif-fres

>>>print('7 est \x3E à 6') 7 est > à 6

unnnn Caractère Unicode codé sur 16 bits >>>print u'\u00bfHabla espa\u00f1ol?')

¿Habla español?

N{nom} Caractère Unicode défini par le nom >>>print u'\N{POUND SIGN}'

£

Tableau 4–1 Caractères spéciaux pour le backslash (suite)

Caractère Description Exemple

Littéraux pour les entiers

En Python, un entier peut être représenté sous forme décimale, binaire, octale ou hexadécimale.

Représentation décimale

Classiquement, la forme décimale est représentée par une séquence de chiffres numéri-ques. La plage des valeurs possibles s’étend de 0 à 2 147 483 647, ce qui correspond à une valeur non signée sur 32 bits et permet de représenter un entier naturel.

Pour obtenir des valeurs négatives et étendre la représentation aux entiers relatifs, le lit-téral est préfixé de l’opérateur - pour former une expression correspondant à la valeur.

Pour toutes les valeurs qui dépassent cette plage, des entiers longs doivent être utilisés.

Un entier long est représenté de la même manière qu’un entier, mais suffixé par la lettre

L ou l. Il est conseillé d’utiliser la version majuscule afin d’éviter une éventuelle confu-sion avec le chiffre 1. Il n’y a pas de limite de représentation pour les entiers longs mise à part la mémoire virtuelle disponible de l’ordinateur. En d’autres termes, et contraire-ment à beaucoup d’autres langages, il n’y a pas besoin de mettre en place des algo-rithmes de changement de base pour manipuler des nombres de grande taille.

Représentation d’entiers

Depuis la version 2.4 de Python, lorsque qu’un entier simple dépasse la plage auto-risée, il est automatiquement transtypé, c’est-à-dire converti, en entier long.

Transtypage automatique en entier long

La version 3 de Python, quant à elle, ne fait plus de distinction entre ces deux types et les unifie en un seul type d’entiers sans suffixes.

>>> u = -1

>>> u = 23456

>>> u = 2L

>>> u = 826252524370896L

>>> u = 826252524352928685376357642970896L # long, isn't it ?

>>> u = 56

>>> type(u)

<type 'int'>

>>> u = 3456876534567

>>> type(u)

<type 'long'>

Manipulation d’entiers sous Python 3

Représentation binaire

La forme binaire (base 2) est obtenue avec le préfixe 0b (zéro suivi de b) ou 0B. bin permet d’afficher la représentation binaire d’un entier.

Représentation binaire

La représentation binaire n’existe que depuis Python 2.6.

Représentation octale

La forme octale est obtenue par une séquence de chiffres de 0 à 7, préfixée d’un 0o (zéro suivi d’un petit o) ou 0O. oct permet d’afficher la représentation octale d’un entier.

Exemples de représentation octale

Cette forme existe depuis Python 2.6, qui supporte encore l’ancienne forme où le chiffre octal était précédé d’un zéro simple.

Représentation hexadécimale

La forme hexadécimale est obtenue par une séquence de chiffres et de lettres de A à F, préfixée par la séquence 0x ou 0X. La forme la plus courante est d’utiliser le préfixe 0x.

>>> 2L

File "<stdin>", line 1 2L

^

SyntaxError: invalid syntax

>>> 826252524352928685376357642970896 826252524352928685376357642970896

>>> 0b0101101001 361

>>> bin(14) '0b1110'

>>> u = 0o546

>>> u = 0o76453L

>>> oct(543) '01037'

Les lettres qui servent à la composition de la valeur peuvent être en majuscules ou minuscules. La notation la plus lisible est l’utilisation de lettres majuscules, combi-nées à l’utilisation du préfixe 0x, mais ce choix reste souvent dicté par le domaine.

Enfin, hex permet d’afficher la représentation hexadécimale d’un entier.

Exemples de notation hexadécimale

Littéraux pour les valeurs à virgule flottante

La représentation de valeurs à virgule flottante, que l’on notera littéraux réels, permet de décrire des valeurs réelles. Les parties entière et fractionnelle de la valeur réelle sont séparées par le signe «.», chaque partie étant composée de chiffres. Si le pre-mier chiffre de la partie entière est 0, le nombre représenté ne sera néanmoins pas considéré comme un octal et restera traité en base 10.

Représentation de réels

De même que pour un littéral entier, le signe - peut être utilisé en préfixe pour com-poser une valeur négative.

Une puissance est aussi une valeur à virgule flottante. Elle est représentée par une partie entière (ou littéral réel) complète suivie d’un exposant. L’exposant est un suf-fixe composé de la lettre e ou E, suivi d’un signe + ou - optionnel et d’un certain nombre de chiffres.

Le module decimal, présenté au chapitre 9, permet quant à lui de représenter des valeurs décimales.

>>> u = 0X3EF5

>>> u = 0X3EF598L

>>> u = 0x3EF76L

>>> u = 0x3ef7b66L

>>> hex(43676) '0xaa9c'

>>> u = .001

>>> u = 103.

>>> U = 103.001

>>> u = -103.2

>>> u = -.1

>>> u = -2.

>>> u = 09.02 # équivalent à 9.02

Représentation de valeurs exponentielles

Littéraux pour les nombres complexes

En Python, la représentation d’un nombre complexe se fait par l’association de deux littéraux réels séparés par le signe+. La partie imaginaire est suffixée par la lettre J ou

j. Il est aussi possible d’omettre la partie réelle lorsqu’elle est nulle.

Enfin, les parties réelle et imaginaire peuvent être consultées par le biais des méthodes real et imag fournies par les objets de type complex.

Exemples de nombres complexes

Dans le document Python Python (Page 95-99)