Nombres¶
Les nombres sont un concept pour comparer et ordonner des éléments par une numérotation.
Numération¶
La numération désigne le mode de représentation des nombres.
Nous utilisons la numération occidentale, dite arabe ou indo-arabe. Elle est décimale et positionnelle.
Voici les 5 premiers nombres en numération arabe
1, 2, 3, 4, 5
en umération romaine
I, II, III, IV, V
et en numération japonaise
一、二、三、四、五
Les différents ensembles¶
Le système décimal utilise 10 chiffres pour représenter les nombres. Dans cette section nous allons construire des séquences de symboles qui représentent un
nombre naturel
nombre entier
nombre rationnel
nombre scientifique
digits = '0123456789'
La fonction choice
du module random
permet d’en sélectionner un chiffre aléatoire.
from random import choice
choice(digits)
'2'
def d():
return choice(digits)
Voici trois digits.
d(), d(), d()
('8', '3', '3')
Nombre naturel¶
Un nombre naturel est représenté avec une séquence de chiffres.
def n(m):
s = ''
for i in range(m):
s += d()
return s
Voici trois nombres naturels.
n(3), n(5), n(7)
('917', '42720', '6516585')
Nombre entier¶
Les nombre entiers incluent aussi les nombres négatifs. Nous utilisons les symboles
plus
+
moins
-
def z(m):
sign = choice('-+')
return sign + n(m)
Voici trois exemples de nombre entier.
z(2), z(3), z(5)
('-46', '-377', '-87196')
Nombre rationnel¶
Nombre à virgule flottante.
def q(k, m):
return z(k) + '.' + n(m)
q(2, 3), q(1, 7), q(4, 5)
('-07.470', '+0.4390918', '-5823.33598')
Nombre scientifique¶
def e(k, m):
return q(1, k-1) + 'e' + z(m)
e(3, 1), e(2, 2), e(3, 1)
('+3.13e-8', '-6.3e+00', '+3.17e-0')
Type int¶
Python connait deux types de nombres
int
float
type(1), type(1.2)
(int, float)
a = z(2), z(3), z(5)
for x in a:
print(x, '-->', int(x))
-16 --> -16
-356 --> -356
+22963 --> 22963
En Python il n’y a pas de limitation pour le nombre de positions d’un entier.
a = n(50)
int(a)
41202897292098274027477877193047814135821830647208
Nous constatons que l’addtion de 1 donne le bon résultat.
int(a) + 1
41202897292098274027477877193047814135821830647209
Type float¶
nombres = e(3, 1), e(2, 2), e(3, 2)
for x in nombres:
print(x, '-->', float(x))
+5.81e-9 --> 5.81e-09
+5.7e-63 --> 5.7e-63
-6.28e-59 --> -6.28e-59
Nombres hexadécimales¶
Le système hexadécimal est un système de numérotation en base 16. En plus des 10 chiffres, il utilise les premiers 6 lettres de l’alphabet.
Ce système est très pratique en informatique, parce qu’il permet de représenter 4 éléments binaires avec un seul symbole hexadécimale.
Nous utilisons ici un f-string pour formater la variable i
{i:2}
affiche la variablei
avec 2 positions{i:04b}
affiche la variablei
en binaire avec 4 positions (rambourré avec des0
){i:X}
affiche la variablei
en hexadécimal
for i in range(16):
print(f'{i:2} = {i:04b} = {i:X}')
0 = 0000 = 0
1 = 0001 = 1
2 = 0010 = 2
3 = 0011 = 3
4 = 0100 = 4
5 = 0101 = 5
6 = 0110 = 6
7 = 0111 = 7
8 = 1000 = 8
9 = 1001 = 9
10 = 1010 = A
11 = 1011 = B
12 = 1100 = C
13 = 1101 = D
14 = 1110 = E
15 = 1111 = F
Voici les dernières valeurs d’un octet
for i in range(250, 256):
print(f'{i} = {i:08b} = {i:02X}')
250 = 11111010 = FA
251 = 11111011 = FB
252 = 11111100 = FC
253 = 11111101 = FD
254 = 11111110 = FE
255 = 11111111 = FF