is
#Gibt true für dasselbe Objekt zurück
>>> a = b = [1, 2, 3]
>>> a is b
True
#In diesem Fall ist das Ergebnis von is falsch, da es sich um ein anderes Objekt handelt.
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> a == b
True
#Das Ergebnis von is wird anhand der ID des Objekts beurteilt
>>> id(a)
4353816328
>>> id(b)
4353060616
>>> a = b = [1, 2, 3]
>>> id(a)
4353816392
>>> id(b)
4353816392
Bedingter Operator (ternärer Operator)
>>> x = 1
>>> 100 if x == 1 else 200
100
>>> x = 2
>>> 100 if x == 1 else 200
200
>>> x == 1 and 100 or 200 #Umschreiben von und und oder
200
Automatische Typkonvertierung von numerischen Berechnungsergebnissen
>>> 1 + 1.0 #ganze Zahl+Gleitkommazahl
2.0 #Das Ergebnis ist eine Gleitkommazahl
>>> 1 + 1j #ganze Zahl+Komplexe Zahl
(1+1j) #Das Ergebnis ist eine komplexe Zahl
Numerische Berechnungsmethode
>>> divmod(20, 6)
(3, 2) #Der Quotient und der Rest der Division werden in Tapple zurückgegeben. Es sieht bequem aus.
>>> pow(3, 4) # 3 **Gleich wie 4
81
>>> pow(3, 4, 5) # 3 ** 4 %Wie 5, aber schneller
1
int([x, byte])
#Gibt 0 ohne Argumente zurück
>>> int()
0
#Wenn Sie eine Gleitkommazahl übergeben, wird diese auf 0 gerundet
>>> int(10.5)
10
>>> int(-10.5)
-10
#Sie können die Basis angeben, wenn Sie eine Zeichenfolge übergeben
>>> int('100') #Wenn der Radix weggelassen wird, handelt es sich um eine Dezimalzahl
100
>>> int('100', 2)
4
>>> int('100', 8)
64
>>> int('100', 10)
100
>>> int('100', 16)
256
#Wenn der Radix 0 ist, wird er als ganzzahliges Literal konvertiert.
>>> int('100', 0)
100
>>> int('0b100', 0)
4
>>> int('0o100', 0)
64
>>> int('0x100', 0)
256
#Konvertiert jedes Zeichen, das als Zahl in der Unicode-Zeichendatenbank betrachtet wird
>>> int('V', 32)
31
>>> int('100', 2)
4
Binär → Ganzzahliges Objekt
>>> int.from_bytes(b'\x00\xff', byteorder = 'big') #Da es sich um eine Klassenmethode handelt, rufen Sie sie als int-Typ-Methode auf
255
# signed =True, um die Byte-Zeichenfolge als vorzeichenbehaftete Ganzzahl mit einem 2-Komplement zu konvertieren
>>> int.from_bytes(b'\xfe\xff\xff\xff', byteorder = 'little', signed=True)
-2
Ganzzahlige Objektmethode
#Ruft eine Zeichenfolge mit ganzzahligen Werten ab
>>> (255).to_bytes(2, byteorder = 'big')
b'\x00\xff'
#Umgerechnet als Komplement von 2
>>> (-2).to_bytes(4, 'little', signed = True)
b'\xfe\xff\xff\xff'
#Gibt die Anzahl der Bits zurück, die zum Konvertieren einer Zahl in eine Binärzahl erforderlich sind (ohne Vorzeichenbits).
>>> (100000000).bit_length()
27
Logischer Werttyp
#Abgeleitet vom Integer-Typ ist True tatsächlich 1 für Integer und False 0 für Integer.
>>> int(True)
1
>>> int(False)
0
#Kann dieselben Operationen wie normale Ganzzahlen ausführen
>>> True + False
1
>>> True * False
0
>>> False - 1
-1
>>> True + 1
2
>>> True / 2
0.5
Logisches Wertobjekt
#Das logische Wertobjekt ist ein Objekt vom Typ Bool
#Es gibt immer nur ein True-Objekt und ein False-Objekt
>>> bool(0)
False
>>> bool(1)
True
>>> bool([100])
True
>>> bool([])
False
>>> bool()
False
Bitinversion
# ~x ist-1*(x+1)Gibt einen ganzzahligen Wert zurück (Keine Bitoperation in Python)
>>> ~5
-6
>>> ~(-6)
5
>>> '{:08b}'.format(5 & 0xff)
'00000101'
>>> '{:08b}'.format(-6 & 0xff)
'11111010'
Unendlichkeit / Nichtzahl in Gleitkomma-Arithmetik
#Wenn der Gleitkommawert größer als der gültige Bereich ist
>>> 1e200 * 1e200
inf #Unendlichkeit wird als inf angezeigt
>>> -1e200 * 1e200
-inf
#Das Ergebnis ist aufgrund von Operationen mit unendlichen Werten eine Nicht-Zahl (keine Zahl).:NaN)
>>> 0 * 1e1000
nan
#Der Wert ist inf,Die Gleitkommazahl von nan ist float()Mit Methode erstellen
>>> float('nan') #Nicht numerisch
nan
>>> float('inf') #Unendlichkeit
inf
>>> float('-inf') #Negative Unendlichkeit
-inf
>>> float('infinity') # 'infinity'Unendlich
inf
Gleitkomma-Objektmethode
#Gibt ein Tupel von zwei ganzzahligen Werten zurück, deren Verhältnis dem Wert des Objekts entspricht. Der zweite Wert ist immer positiv.
>>> (0.5).as_integer_ratio()
(1, 2)
>>> (-2.5).as_integer_ratio()
(-5, 2)
# inf,Die folgende Ausnahme wird für nan ausgelöst
>>> float('inf').as_integer_ratio()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: Cannot pass infinity to float.as_integer_ratio.
>>> float('nan').as_integer_ratio()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Cannot pass NaN to float.as_integer_ratio.
#Geben Sie den Wert des Objekts als Zeichenfolge im Hexadezimalformat aus
# [sign]['0x']integer['.'fraction]['p'exponent]Im Format erstellt
>>> 1.0.hex()
'0x1.0000000000000p+0'
#Gibt True zurück, wenn der Wert nach dem Dezimalpunkt Null ist und ein anderer ganzzahliger Wert als inf oder nan ist
>>> (-2.0).is_integer()
True
>>> (3.2).is_integer()
False
>>> float('inf').is_integer()
False
>>> float('nan').is_integer()
False
Dezimal Gleitkommazahl
#Berechnungen mit Gleitkommazahlen sind im Allgemeinen ungenau
>>> 0.3 - 0.2
0.09999999999999998
#Python bietet ein Dezimalmodul für die Dezimal-Gleitkomma-Arithmetik
#Im Gegensatz zu Float-Operationen werden alle Berechnungen von der Software durchgeführt, sodass die Leistung beeinträchtigt wird.
>>> import decimal
>>> print(decimal.Decimal('0.3') - decimal.Decimal('0.2'))
0.1
# inf, nan
>>> from decimal import Decimal
>>> Decimal('inf')
Decimal('Infinity')
>>> Decimal('nan') + 1 #Das Ergebnis der Operation mit nan ist nan,
Decimal('NaN')
>>> Decimal('sNaN') + 1 #Ausnahmen können mit einem speziellen Wert ausgelöst werden, der als Signalisierung von NaN bezeichnet wird
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]
Recommended Posts