Python3 divmod()-Funktion

Python3 内置函数Python3 integrierte Funktionen

Die Python-Funktion divmod() akzeptiert zwei numerische (nicht komplexe) Parameter und gibt ein Tupel (a // b, a % b) zurück, das Quotient und Rest enthält.

In Python 3.x unterstützt diese Funktion keine komplexen Zahlen.

Funktionssyntax

Die Funktion divmod() akzeptiert zwei Parameter, üblicherweise zwei Zahlen, und gibt ein Tupel mit zwei Werten zurück. Der erste Wert ist der Quotient (d. h. der ganzzahlige Teil) des ersten Parameters geteilt durch den zweiten Parameter, und der zweite Wert ist der Rest.

divmod(a, b)

Parameterbeschreibung:

  • a: Zahl, nicht komplex.
  • b: Zahl, nicht komplex.

Wenn beide Parameter a und b Ganzzahlen sind, ist das von der Funktion zurückgegebene Ergebnis äquivalent zu(a // b, a % b)。

Wenn einer der Parameter eine Gleitkommazahl ist, ist das von der Funktion zurückgegebene Ergebnis äquivalent zu (q, a % b), wobei q normalerweise math.floor(a / b) ist, aber auch um 1 kleiner sein kann. Der Wert von q * b + a % b wird jedoch sehr nahe bei a liegen.

Wenn das Ergebnis von a % b nicht 0 ist, hat der Rest dasselbe Vorzeichen wie Parameter b. Wenn b positiv ist, ist der Rest positiv; wenn b negativ ist, ist der Rest ebenfalls negativ, und 0 <= abs(a % b) < abs(b).

Beispiel

>>> divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(8, -2)
(-4, 0)
>>> divmod(3, 1.3)
(2.0, 0.3999999999999999)

Anwendungsszenarien der Funktion divmod()

divmod() ist sehr nützlich in Szenarien wie Zeitumrechnung und Paginierungsberechnung.

1. Zeitumrechnung. Konvertieren Sie beispielsweise Gesamtsekunden in Stunden, Minuten und Sekunden:

Beispiel

total_seconds = 3661
hours, remainder = divmod(total_seconds, 3600)
minutes, seconds = divmod(remainder, 60)
print(f{hours} Stunden {minutes} Minuten {seconds} Sekunden)  # Ausgabe: 1 Stunde 1 Minute 1 Sekunde

2. Paginierungsberechnung. In einem Paginierungssystem kann divmod() verwendet werden, um die Gesamtzahl der Seiten und die Anzahl der Datensätze auf der letzten Seite zu berechnen:

Beispiel

total_items = 101
items_per_page = 10
pages, remainder = divmod(total_items, items_per_page)
if remainder:
    pages += 1
print(fGesamtseiten: {pages})  # Ausgabe: Gesamtseiten: 11

Vorsichtsmaßnahmen für die divmod()-Funktion

Der zweite Parameter der divmod()-Funktion darf nicht 0 sein, andernfalls wird eine ZeroDivisionError-Ausnahme ausgelöst.

Die Typen des von der divmod()-Funktion zurückgegebenen Quotienten und Rests hängen von den Typen der Eingabeparameter ab. Wenn die Eingabeparameter Ganzzahlen sind, sind der zurückgegebene Quotient und Rest ebenfalls Ganzzahlen; wenn die Eingabeparameter Gleitkommazahlen sind, sind der zurückgegebene Quotient und Rest ebenfalls Gleitkommazahlen.

Python3 内置函数Python3 integrierte Funktionen

Andere Erweiterungen