Wie berechnet man einen Mod b in Python?

151

Gibt es eine Modulo-Funktion in der Python- mathBibliothek?

Ist nicht 15 % 43? Aber 15 mod 4ist 1 richtig?

Hick
quelle
6
3 entspricht 15 mod 4.
Paul Fisher
2
Sie denken wahrscheinlich, dass (15 mod 4 = -1) das gleiche ist wie zu sagen (15 mod 4 = 3)
Nathan Fellman
16
Achtung: (-41)% 3 == -2 in C, aber (-41)% 3 == 1 in Python stackoverflow.com/questions/828092/…
jfs

Antworten:

240

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

nervös
quelle
56

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

Uolot
quelle
37
>>> 15 % 4
3
>>>

Das Modulo gibt den Rest nach der Ganzzahldivision an.

Bill die Eidechse
quelle
25

mod = a % b

Dies speichert das Ergebnis von a mod bin der Variablen mod.

Und Sie haben Recht, 15 mod 4ist 3, und genau das gibt Python zurück:

>>> 15 % 4
3

a %= b ist auch gültig.

Merijn
quelle
9

Warum benutzt du nicht%?


print 4 % 2 # 0
Geo
quelle
5

Ich glaube nicht, dass Sie Modulo vollständig erfassen. a % bund a mod bsind nur zwei verschiedene Möglichkeiten, Modulo auszudrücken. In diesem Fall verwendet Python %. Nein, 15 mod 4ist nicht 1, 15 % 4 == 15 mod 4 == 3.

UnsignedByte
quelle
1
A = [3, 1, 2, 4]
for a in A:
    print(a % 2)

Ausgabe:

1
1
0
0
Nehal Pawar
quelle