Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser les nombres, la conversion de types et les mathématiques en Python

Maîtriser les nombres, la conversion de types et les mathématiques en Python

Découvrez comment Python gère les données numériques, les subtilités de la conversion de types et les puissants utilitaires mathématiques pour la programmation quotidienne.

Types de données numériques en Python

Python classe les nombres en trois types principaux : int pour les entiers, float pour les nombres à virgule flottante, et complex pour les nombres à partie réelle et imaginaire. La présence d'un point décimal distingue int de float (ex. : 5 est un entier, 5.0 est un float). Les nombres complexes suivent la notation x + yj, où x est la partie réelle et y la partie imaginaire.

Utilisez type() pour inspecter la classe d'une valeur et isinstance() pour vérifier l'appartenance à un type particulier. Par exemple :

a = 5
print(type(a))
print(type(5.0))
c = 5 + 3j
print(c + 3)
print(isinstance(c, complex))

Sortie :

<class 'int'> <class 'float'> (8+3j) True

Les entiers en Python ont une précision arbitraire ; les floats conservent environ 15 chiffres décimaux de précision. Pour les développeurs travaillant avec des représentations binaire, hexadécimale ou octale, Python offre des préfixes pratiques :

Système numériquePréfixe
Binaire0b ou 0B
Octal0o ou 0O
Hexadécimal0x ou 0X

Exemples :

# Sortie : 107
print(0b1101011)
# Sortie : 253 (251 + 2)
print(0xFB + 0b10)
# Sortie : 13
print(0o15)

Résultat :

107 253 13

Conversion de type (coercition)

Python promeut automatiquement les entiers en floats lors d'opérations arithmétiques quand un opérande float est impliqué. Par exemple :

>>> 1 + 2.0
3.0

Les conversions explicites sont tout aussi simples avec int(), float() et complex(), qui peuvent aussi parser des chaînes :

>>> int(2.3)
2
>>> int(-2.8)
-2
>>> float(5)
5.0
>>> complex('3+5j')
(3+5j)

Lors de la conversion d'un float en int, Python tronque la partie décimale au lieu d'arrondir.

Le module Decimal de Python

L'arithmétique à virgule flottante peut produire des résultats surprenants à cause des limites de la représentation binaire. Par exemple :

>>> (1.1 + 2.2) == 3.3
False

Comme des nombres comme 0.1 ne peuvent pas être représentés exactement en binaire, les opérations produisent de petites erreurs d'arrondi. Le module decimal atténue ce problème en fournissant une arithmétique décimale à précision arbitraire :

import decimal
print(0.1)
print(decimal.Decimal(0.1))

Sortie :

0.1 0.1000000000000000055511151231257827021181583404541015625

L'utilisation de Decimal préserve les chiffres significatifs et les représentations décimales exactes, essentielle pour les calculs financiers :

from decimal import Decimal as D
print(D('1.1') + D('2.2'))
print(D('1.2') * D('2.50'))

Sortie :

3.3 3.000

Comme les opérations decimales sont plus lentes que les floats binaires, réservez Decimal aux scénarios exigeant une précision exacte, comme les valeurs monétaires, la précision configurable ou le contrôle des chiffres significatifs.

Quand utiliser Decimal au lieu de float ?

Le module fractions de Python

Le module fractions offre un support des nombres rationnels, permettant une arithmétique exacte avec numérateur et dénominateur comme entiers :

import fractions
print(fractions.Fraction(1.5))
print(fractions.Fraction(5))
print(fractions.Fraction(1,3))

Sortie :

3/2 5 1/3

Créer un Fraction depuis un float peut produire des résultats contre-intuitifs à cause de l'arrondi binaire, donc privilégiez les entrées en chaîne pour les nombres décimaux :

import fractions
# Depuis un float
print(fractions.Fraction(1.1))
# Depuis une chaîne
print(fractions.Fraction('1.1'))

Sortie :

2476979795053773/2251799813685248 11/10

Les fractions supportent tous les opérateurs arithmétiques :

from fractions import Fraction as F
print(F(1, 3) + F(1, 3))
print(1 / F(5, 6))
print(F(-3, 10) > 0)
print(F(-3, 10) < 0)

Sortie :

2/3 6/5 False True

Les mathématiques en Python

Le module math de Python fournit des fonctions pour la trigonométrie, les logarithmes, les factorielles, et plus :

import math
print(math.pi)
print(math.cos(math.pi))
print(math.exp(10))
print(math.log10(1000))
print(math.sinh(1))
print(math.factorial(6))

Sortie :

3.141592653589793 -1.0 22026.465794806718 3.0 1.1752011936438014 720

Pour l'aléatoire et l'échantillonnage, le module random offre :

import random
print(random.randrange(10, 20))
x = ['a', 'b', 'c', 'd', 'e']
print(random.choice(x))
random.shuffle(x)
print(x)
print(random.random())

Exemple de sortie (les valeurs varient) :

18 e ['c', 'e', 'd', 'b', 'a'] 0.5682821194654443

Les deux modules fournissent une documentation complète détaillant toutes les fonctions et attributs disponibles.

Python

  1. Maîtriser la conversion de types en C# : Implicite, Explicite, Parse et méthodes Convert
  2. Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
  3. Instructions, indentation et commentaires en Python : Guide clair
  4. Variables, constantes et littéraux en Python – Guide complet
  5. Maîtriser la conversion et le transtypage de types en Python : Guide complet
  6. Maîtriser les E/S et l'importation de modules en Python : Guide pratique
  7. Comprendre les variables globales, locales et non locales en Python
  8. Maîtriser les opérations sur les répertoires et fichiers en Python
  9. Maîtriser les erreurs et exceptions intégrées de Python