English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在此文中,您将了解Python中使用的不同数字,如何将一种数据类型转换为另一种数据类型,以及Python支持的数学操作。
Python支持整数,浮点数和复数。他们被定义为int,float和complex在Python数据类型中。
Python unterstützt Ganzzahlen, Fließkommazahlen und Komplexe. Sie werden als int, float und complex in den Python-Daten Typen definiert.5Ganzzahlen und Fließkommazahlen werden durch das Vorhandensein oder Fehlen eines Dezimalpunktes getrennt.5ist eine Ganzzahl, und
.0 ist eine Fließkommazahl. + Komplexe Zahlen werden in Form geschrieben xyj, wobeixist der Reellteil,y
ist der Imaginärteil.
Wir können die Funktion type() verwenden, um zu bestimmen, zu welchem Daten Typ eine Variable oder ein Wert gehört, und wir können die Funktion isinstance() verwenden, um zu überprüfen, ob sie zu einem bestimmten Typ gehört. 5 a = # Ausgabe: <class 'int'> print(type(a)) # Ausgabe: <class 'float'>5print(type( .0))8+3j) # Ausgabe: ( 5 + 3c = j + 3) # Ausgabe: True print(c
print(isinstance(c, complex))15obwohl Ganzzahlen beliebige Längen sein können, können Fließkommazahlen nur genau bis16kleinen Dezimalstellen (dem
Bit ungenau).10wir jeden Tag verarbeiteten Zahlen sind Dezimal (mit2)Zahlen Systemen. Aber Computerprogrammierer (normalerweise Embedded-Programmierer) müssen den Binärsystem (Basis16),hexadezimale (Basis8)und oktale (Basis
)。
Zahlen System | Präfix |
---|---|
Binär | '0b' oder '0B' |
Oktal | '0o' oder '0O' |
Hexadezimal | '0x' oder '0X' |
Hier sind einige Beispiele
# Ausgabe: 107 print(0b1101011) # Ausgabe: 253 (251 + 2) print(0xFB + 0b10) # Ausgabe: 13 print(0o15)
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
107 253 13
Wir können eine Zahl in eine andere Zahl umwandeln. Dies wird auch als explizite Umwandlung bezeichnet.
wenn einer der Operanden eine Fließkommazahl ist, werden Addition, Subtraktion und andere Operationen zwingend implizit (automatisch) in Fließkommazahlen umgewandelt.
>>> 1 + 2.0 3.0
Wir können auf dem obigen Beispiel sehen1in den1.0 (float) durchgeführt werden, und das Ergebnis ist auch eine Fließkommazahl.
Wir können auch die eingebauten Funktionen int(), float() und complex() verwenden, um zwischen Typen explizit umzuwandeln. Diese Funktionen können sogar vonZeichenketteKonvertierung.
>>> int(2.3) 2 >>> int(-2.8) -2 >>> float(5) 5.0 >>> komplex('3+5j') (3+5j)
wird bei der Konvertierung von float in int abgeschnitten (dem nächsten Ganzzahl nahegelegenen Ganzen).
Python hat eine built-in-Klasse float, die einige Berechnungen ausführt, die uns überraschen könnten. Wir wissen, dass1.1und2.2kann sein.3.3,aber Python scheint nicht einverstanden zu sein.
>>> (1.1 + 2.2) == 3.3 False
Was ist passiert?
Tatsächlich werden Gleitkommazahlen auf Computerhardware als binäre Brüche implementiert, weil Computer nur Binär (0 und1)。 Aus diesem Grund wissen wir, dass die meisten Dezimalbrüche in unseren Computern nicht genau gespeichert werden können.
Lassen Sie uns ein Beispiel nennen. Wir können den Bruch1/3wird als Dezimalzahl dargestellt. Dies ergibt 0.33333333 ...ist unendlich lang und kann nur approximiert werden.
Der ursprüngliche Dezimalbruch 0.1Das führt zu einem unendlichen binären Bruch 0.000110011001100110011 ...und unser Computer speichert nur eine begrenzte Anzahl von binären Zahlen.
Das wird nur 0. heranreichen.1, aber niemals genau sein. Dies ist eine Beschränkung der Computerhardware und nicht ein Fehler in Python.
>>> 1.1 + 2.2 3.3000000000000003
Um dieses Problem zu überwinden, können wir das mitgelieferte Dezimalmodul von Python verwenden. Die Genauigkeit von Gleitkommazahlen kann bis zu15Dezimalstellen, während das Dezimalmodul eine durch den Benutzer einstellbare Präzision hat.
import decimal # 输出: 0.1 print(0.1) # 输出: Decimal('0.1000000000000000055511151231257827021181583404541015625') print(decimal.Decimal(0.1))
Wenn wir Dezimalzahlen berechnen möchten, wie man es in der Schule gelernt hat, verwenden wir dieses Modul.
es behält auch Bedeutung. Wir wissen,25.50 Kilogramm ist25.5Kilogramm sind genauer, weil sie zwei Dezimalstellen haben, nicht eine.
from decimal import Decimal as D # 输出: Decimal('3.3') print(D('1.1') + D('2.2)) # 输出: Decimal('3.000') print(D('1.2') * D('2.50'))
Beachten Sie das Nachkommastellenende im obigen Beispiel.
Wir könnten fragen, warum man nicht immer Decimal anstelle von float verwenden sollte? Hauptgrund ist die Effizienz. Gleitkommazahlen müssen schneller berechnet werden als Dezimalzahlen.
In folgenden Fällen verwenden wir normalerweise Dezimalzahlen.
Wenn wir Finanzanwendungen durchführen, die eine genaue Dezimaldarstellung erfordern.
Wenn wir die erforderliche Genauigkeitsstufe angeben müssen.
Wenn wir den Begriff der gültigen Dezimalstellen implementieren möchten.
Wenn wir berechnen möchten, wie man es in der Schule gelernt hat
Python bietet über das Modul fractions Operationen mit Brüchen an.
Brüche haben einen Nenner und einen Zähler, die beide Ganzzahlen sind. Das Modul unterstützt rationale Zahlalgorithmen.
Wir können Fraction-Objekte auf verschiedene Weise erstellen.
import fractions # Ausgabe: 3/2 print(fractions.Fraction(1.5)) # Ausgabe: 5 print(fractions.Fraction(5)) # Ausgabe: 1/3 print(fractions.Fraction(1,3))
Bei der Erstellung von Brüchen aus floats können wir einige ungewöhnliche Ergebnisse erhalten. Dies ist auf die unvollkommene Darstellung der binären Gleitkommazahlen in dem letzten Abschnitt zurückzuführen.
Glücklicherweise ermöglichen uns die Brüche die Verwendung von Strings zur Beispielung. Dies ist die bevorzugte Option bei der Verwendung von Dezimalzahlen.
import fractions # Als Float verwendet # Ausgabe: 2476979795053773/2251799813685248 print(fractions.Fraction(1.1)) # Als String verwendet # Ausgabe: 11/10 print(fractions.Fraction('1.1))
Dieser Datentyp unterstützt alle grundlegenden Operationen. Hier sind einige Beispiele.
from fractions import Fraction as F # Ausgabe: 2/3 print(F(1,3) + F(1,3)) # Ausgabe: 6/5 print(1 / F(5,6)) # Ausgabe: False print(F(-3,10) > 0) # Ausgabe: True print(F(-3,10) < 0)
Python bietet ähnliche Module, math und random können verschiedene mathematische Operationen ausführen, z.B. trigonometrische Funktionen, Logarithmen, Wahrscheinlichkeit und Statistik usw.
import math # Ausgabe: 3.141592653589793 print(math.pi) # Ausgabe: -1.0 print(math.cos(math.pi)) # Ausgabe: 22026.465794806718 print(math.exp(10)) # Ausgabe: 3.0 print(math.log10(1000)) # Ausgabe: 1.1752011936438014 print(math.sinh(1)) # Ausgabe: 720 print(math.factorial(6))
Dies istIm Python-MathematikmodulVerfügbare vollständige Liste von Funktionen und Eigenschaften.
import random # Ausgabe: 16 print(random.randrange(10,20)) x = ['a', 'b', 'c', 'd', 'e'] # Erhalte zufällige Option print(random.choice(x)) # Verwische die Reihenfolge der Liste x random.shuffle(x) # Drucke den umgeordneten Ausgang von x print(x) # Drucke zufälliges Element print(random.random())
Ausgabenergebnis (zufälliges Ergebnis):
19 c ['e', 'a', 'd', 'c', 'b'] 0.707947055817621
Dies istIm Python-ZufallmodulVerfügbare vollständige Liste von Funktionen und Eigenschaften.