Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Zahlen, Typkonvertierung und Mathematik in Python meistern

Zahlen, Typkonvertierung und Mathematik in Python meistern

Entdecken Sie, wie Python numerische Daten handhabt, die Feinheiten der Typkonvertierung und die leistungsstarken mathematischen Hilfsmittel für die tägliche Programmierung.

Zahlendatentypen in Python

Python unterteilt Zahlen in drei KernTypen: int für ganze Zahlen, float für Gleitkommazahlen mit Dezimalstellen und complex für Zahlen mit Real- und Imaginärteil. Ein Dezimalpunkt unterscheidet int von float (z. B. ist 5 eine Ganzzahl, 5.0 ein Float). Komplexe Zahlen folgen der Notation x + yj, wobei x der Realteil und y der Imaginärteil ist.

Verwenden Sie type(), um die Klasse eines Werts zu prüfen, und isinstance(), um die Zugehörigkeit zu einem bestimmten Typ zu verifizieren. Beispiel:

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

Ausgabe:

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

Ganze Zahlen in Python haben beliebige Genauigkeit; Floats behalten etwa 15 Dezimalstellen Genauigkeit. Für Entwickler, die mit binären, hexadezimalen oder oktalen Darstellungen arbeiten, bietet Python praktische Präfixe:

ZahlensystemPräfix
Binär0b oder 0B
Oktal0o oder 0O
Hexadezimal0x oder 0X

Beispiele:

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

Ergebnis:

107 253 13

Typkonvertierung (Coercion)

Python fördert Ganzzahlen automatisch zu Floats bei arithmetischen Operationen, wenn ein Float-Operand beteiligt ist. Zum Beispiel:

>>> 1 + 2.0
3.0

Explizite Konvertierungen sind ebenso einfach mit int(), float() und complex(), die auch Strings parsen können:

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

Bei der Konvertierung eines Floats in einen Int schneidet Python den Dezimalteil ab, statt zu runden.

Python Decimal

Gleitkommaarithmetik kann aufgrund binärer Darstellungsgrenzen überraschende Ergebnisse liefern. Zum Beispiel:

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

Da Zahlen wie 0.1 nicht exakt binär darstellbar sind, entstehen kleine Rundungsfehler. Das decimal-Modul behebt dies durch beliebig präzise Dezimalarithmetik:

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

Ausgabe:

0.1 0.1000000000000000055511151231257827021181583404541015625

Die Verwendung von Decimal bewahrt signifikante Stellen und exakte Dezimaldarstellungen – essenziell für Finanzberechnungen:

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

Ausgabe:

3.3 3.000

Da Dezimaloperationen langsamer sind als binäre Floats, reservieren Sie Decimal für Szenarien, die exakte Präzision erfordern, wie Geldwerte, konfigurierbare Genauigkeit oder Kontrolle signifikanter Stellen.

Wann Decimal statt Float verwenden?

Python Fractions

Das fractions-Modul bietet Unterstützung für rationale Zahlen und ermöglicht exakte Arithmetik mit Zähler und Nenner als Ganzzahlen:

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

Ausgabe:

3/2 5 1/3

Das Erstellen eines Fraction aus einem Float kann aufgrund binärer Rundung unintuitive Ergebnisse liefern; bevorzugen Sie String-Eingaben für Dezimalzahlen:

import fractions
# Aus Float
print(fractions.Fraction(1.1))
# Aus String
print(fractions.Fraction('1.1'))

Ausgabe:

2476979795053773/2251799813685248 11/10

Fractions unterstützen alle arithmetischen Operatoren:

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)

Ausgabe:

2/3 6/5 False True

Python Mathematik

Pythons math-Modul liefert Funktionen für Trigonometrie, Logarithmen, Fakultäten und mehr:

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))

Ausgabe:

3.141592653589793 -1.0 22026.465794806718 3.0 1.1752011936438014 720

Für Zufälligkeit und Sampling bietet das random-Modul:

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())

Beispielausgabe (Werte variieren):

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

Beide Module bieten umfassende Dokumentation zu allen verfügbaren Funktionen und Attributen.

Python

  1. C#-Typkonvertierung meistern: Implizit, Explizit, Parse und Convert-Methoden
  2. Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
  3. Python-Anweisungen, Einrückung & Kommentare: Klare Anleitung
  4. Python-Variablen, Konstanten & Literale – Umfassender Leitfaden
  5. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  6. Python I/O & Modul-Importe meistern: Praxisleitfaden
  7. Python Global, Local & Nonlocal Variablen verstehen
  8. Verzeichnis- und Dateioperationen in Python meistern
  9. Python-Fehler & eingebaute Exceptions meistern
  10. Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden