Accueil

Orientation générale

Barre de recherche

DicoNombre

DicoMot Math

DicoCulture

Atlas des maths

Rubriques

Index alphabétique

Nouveautés

Actualités

Références

Édition du: 30/07/2025

M'écrire

Brèves de Maths

 

INDEX

 

Python

 

Programmation

Informatique

Multimédia

Ordinateur

Python – Comment se lancer et initiation

INITIATION

BASES

MATHS

Nombres

Arithmétique

Combinatoire

Plus de chiffres

Th. des nombres

Avec des chiffres

Algèbre

Faites un double-clic pour un retour en haut de page

 

 

PYTHON: Trucs et astuces

Avec les NOMBRES

 

Quelles sont les principales choses à savoir ou à avoir sous la main lorsqu'on s'intéresse aux nombres, leurs formats, leurs présentations.

     

 

Sommaire de cette page

>>> Entiers

>>> Formats

>>> Blocs de k chiffres

>>> Tests

 

>>> Décimales

>>> Tabulation

>>> Affichage

>>> Grands nombres

>>> Conversions

Débutants

Programmation

 

Glossaire

Informatique

Algorithme

 

 

ENTIERS

haut

Nombre entier ?

a, b = 3, 4

c = (a**2 + b**2)**(1/2)

if c.is_integer():

    print(a,b,c,"oui")

3 4 5.0 oui

Conversion entier / chaine de caractères

n = int(12.34)

print(int(n))

m = 15

p = str(n)+str(m)

print(p)

q = int(p)+ 1

print(q)

12

 

1215

 

1216

Détection d'un entier

dans une chaine de chiffres)

Utilisation de isdigit()

txt = "50800"

x = txt.isdigit()

print("this is an integer:",x)

Ch = [int(c) for c \

in txt if c.isdigit()]

print(Ch, sum(Ch))

this is an integer: True

[5, 0, 8, 0, 0] 13

Alternative

def est_entier(val):

    return isinstance(val, int)

print(isinstance(42, int))   # True

print(isinstance("42", int)) # False

True

False

Pour des entiers de toutes sortes

import numbers

def est_entier(val):

    return isinstance(val, numbers.Integral)

print(isinstance(42, int))   # True

print(isinstance("42", int)) # False

True

False

 

 

FORMATS

haut

Format des nombres

 

Note: .xf donne x décimales, la dernière étant arrondie.

N = 3.141592

print("{:.2f}".format(N))

print(f"{N:.4f}")       

3.14

3.1416

Avec la virgule

import math

pi = math.pi

piv = f"{pi:.5f}".replace(".", ",")

print("π = ", piv)

π =  3,14159

Afficher des pourcentages

tx = 0.085

print(f"Taux : {tx:.1%}") 

Taux : 8.5%

Date

from datetime import date

D = date.today()

print(f"Nous sommes le {D:%d/%m/%Y}")

Nous sommes le 27/06/2025

 

BLOCS de k chiffres

haut

Afficher les blocs de trois chiffres

nombre = 12345678910

print(f"{nombre:,}".replace(",", " "))

12 345 678 910

*      f"{nombre:,}" → formate le nombre avec des virgules tous les 3 chiffres (par défaut, à partir de la droite) Résultat : "12,345,678,910"

*      .replace(",", " ") → remplace les virgules par des espaces pour un affichage plus lisible. Résultat affiché : "12 345 678 910"

Nombre insécable

avec la commande \u202f symbole d'un espace insécable

nombre = 123456791011

print(f"{nombre:,}".\

replace(",", "\u202f"))

123 456 791 011

*      Cela garantit que les blocs de chiffres restent groupés visuellement, même à la fin d’une ligne ou dans un texte justifié.

 

Taille de bloc à la demande

def FB(n, b):

    s = str(n)[::-1]  # inversion pour grouper depuis la droite

    blocs = [s[i:i+b] for i in range(0, len(s), b)]

    return ' '.join(bloc[::-1] for bloc in blocs[::-1])

 

nombre = 123456789101112131415

print(FB(nombre, 10))

1 2345678910 1112131415

Note: Python supporte des nombres jusqu'à 4300 chiffres ou caractères

TESTS

haut

Test si premier

from sympy import isprime

n=13

print(n, isprime(n))

13 True

Test si carré

import math

n = 17

r = math.isqrt(n)

if r*r == n:

    print(n,r)

else:

    print(n, "pas carré")

17 pas carré

 

Décimales

haut

Conversion en numérique avec k décimales

# Décimales par défaut

A = [2**5, 2**(1/2), 3**(1/3)]

AA = [float(x) for x in A]

print(AA)

 

# Imprimer avec 5 chiffres (arrondis)

from sympy import N

B =[N(A[i], 5) for i in range(0,3)]

print(B)

 

# Imprimer avec 6 décimales

# ou moins selon l'arrondi

precision = 6

C = [round(float(x), precision) for x in A]

print(C)

 

# Imprimer avec 6 décimales (arrondis)

precision = 6

D = [f"{float(x):.{precision}f}" \

for x in A]

print(D)

# idem sans les guillemets

print("[" + ", ".join(D) + "]")

[32.0, 1.4142135623730951, 1.4422495703074083]

[32.000, 1.4142, 1.4422]

[32.0, 1.414214, 1.44225]

['32.000000', '1.414214', '1.442250']

[32.000000, 1.414214, 1.442250]

Conversion en numérique

 

Calcule A

Tronque sans arrondi à 6 décimales

Remplace le point décimal par une virgule

Affiche sur une seule ligne, séparation par des espaces

import math

A = [2**5, 2**0.5, 3**(1/3)]

def trunc_str(x: float, ndigits: int) -> str: 

    factor = 10**ndigits

    truncated = math.trunc(x * factor) / factor

    return f"{truncated:.{ndigits}f}"

ligne = " ".join(

    trunc_str(val, 6).replace(".", ",")

    for val in A

                )

print(ligne)

32,000000 1,414213 1,442249

 

TABULATION

haut

Avec tabulations

for i in range(1, 6):

    print(f"{i:>2} \

au carré = {i**2:>3}")

1 au carré =   1

 2 au carré =   4

 3 au carré =   9

 4 au carré =  16

 5 au carré =  25

Effet des paramètres

Aucun pour i

Valeur 7 pou i²

for i in range(1, 6):

    print(f"{i} \

au carré = {i**2:>7}")

1 au carré =       1

2 au carré =       4

3 au carré =       9

4 au carré =      16

5 au carré =      25

Voir Affichage des dictionnaires

 

AFFICHAGE

haut

Chaine  de texte ou de calculs

L’expression f"{...}" en Python désigne une f-string, ou chaîne formatée littérale. Elle permet d’incorporer directement des variables ou des expressions dans une chaîne de caractères, de façon claire, lisible et concise.

Formatage

Avec  f"     "

nom = "Nathan"

age = 12

print(f"Bonjour {nom}, vous avez {age} ans.")

Bonjour Nathan, vous avez 12 ans

Avec des nombres

x = 1.234567

print(f"Valeur de x arrondie : {x:.2f}")

Valeur de x arrondie : 1.23

Quantité variable de décimales

Le paramètre k est entre accolades

En dernière ligne, une autre possibilité avec format.

k = 3

n = 1.234567

print(f"{n:.{k}f}")

 

print("{:.{}f}".format(n, k))

1,235

Avec des calculs

a, b = 5, 3

print(f"{a} + {b} = {a + b}")

5 + 3 = 8

Présentation

Avec quantité de décimales imposée.

for n in range(10, 15):

    print(f"{n:.1f} → {n/10:.3f}")

10.0 → 1.000

11.0 → 1.100

12.0 → 1.200

13.0 → 1.300

14.0 → 1.400

 

GRANDS NOMBRES

haut

Grands nombres

On impose 30 décimales: Nécessité de fonctionner en décimal avec une précision suffisante (ici, 40).

from decimal import Decimal, getcontext

getcontext().prec = 40

n = Decimal("2.2345678") # Nombre entre guillemets

print(f"{n:.30f}")

2.234567800000000000000000000000

Grands nombres

idem mais avec une variable.

 

Notez l'usage de str(n)

from decimal import Decimal, getcontext

 

getcontext().prec = 100

for i in range (22,25):

    n = i/10  # chaîne → pas de perte de précision

    n = Decimal(str(n))

    print(f"{n:.30f}")

 

2.200000000000000000000000000000

2.300000000000000000000000000000

2.400000000000000000000000000000

Voir Nombre égal à la moyenne de ses chiffres

 

 

CONVERSIONS

haut

Binaire

n = 100

m = bin(n)

# avec 0b identifiant un nb binaire

p = bin(n)[2:]

# sans l'identifiant

print(n, m, p)

100  (n)

 

0b1100100 (m)

 

1100100 (p)

 

 

Haut de page (ou double-clic)

 

 

 

Retour

*      Trucs de base en Python

*      Python – Ce qu'il faut absolument comprendre avant de se lancer

*      Les classiques en Python

Suite

*      Nombres aléatoires

*      Trucs avec les listes et les ensembles

*      Tour d'horizon avec l'exemple des palindromes

*      Les classiques – Factorielle, Fibonacci …

*      Comment obtenir plus de chiffres significatifs

*      Mes premiers dessins

Voir

*      Scratch – Apprendre à programmer simplement

*      Maple – Apprendre à programmer (maths)

*      Historique de l’aventure informatique

Sites

*      Cours Python – OpenClassrooms 

*      Programmation Python – WikiBooks

Cette page

http://villemin.gerard.free.fr/aInforma/PYTHON/Nombre.htm

 

 

 

 

 

yy