2009-06-13 7 views
83

Gibt es eine Modulo-Funktion in der Python math Bibliothek?Wie berechne ich einen Mod b in Python?

Ist nicht 15 % 4, 3? Aber 15 mod 4 ist 1, oder?

+4

3 entspricht 15 mod 4. –

+0

Sie denken wahrscheinlich, dass (15 mod 4 = -1) das gleiche wie zu sagen ist (15 mod 4 = 3) –

+12

Vorsicht: (-41)% 3 == -2 in C, aber (-41)% 3 == 1 in Python http://stackoverflow.com/questions/828092/python-style-integer-division-modul-in-c – jfs

Antwort

133

Es gibt das % Zeichen. Es ist nicht nur für den Rest, es ist die Modulo-Operation.

9

Warum verwenden Sie nicht%?


print 4 % 2 # 0 
16

mod = a % b

Dies speichert das Ergebnis der a mod b in den Variablen mod.

Und Sie haben Recht, 15 mod 4 3, das ist genau das, was Python zurückkehrt:

>>> 15 % 4 
3 

@Macarse: Ja, aber das gilt für jede \ = in Python bauen, so sollte ich glaube, es gibt keine ist Ich muss das für modulo separat erwähnen.

+1

Hinweis: a% = b ist auch gültig . – Macarse

27
>>> 15 % 4 
3 
>>> 

Das Modulo gibt den Rest nach ganzzahliger Division.

35

können Sie auch divmod(x, y) versuchen, die ein Tupel zurück (x/y, x % y)

2

Ich glaube nicht, dass Sie voll Modulo greifen sind. a % b und a mod b sind nur zwei verschiedene Möglichkeiten, Modulo auszudrücken. In diesem Fall verwendet python %. Nein, 15 mod 4 ist nicht 1, 15 % 4 == 15 mod 4 == 3.

+0

sollte es nicht sein: 15% 4 == 15 mod 4 == 3? –

Verwandte Themen