Édition du: 30/07/2025 |
INDEX |
Python –
Comment se lancer et initiation |
||
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 Glossaire |
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 |
|
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 |
|
Afficher les blocs de trois chiffres |
nombre = 12345678910 print(f"{nombre:,}".replace(",", " ")) |
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 |
||
|
||||
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
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é |
|
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 |
|||
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
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 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
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 |
|
Suite |
|
Voir |
|
Sites |
|
Cette page |
yy