Python-quotient vs Rest
Python 2.6 docs Staat, der x % y
ist definiert als der Rest von x /y (http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex). Ich bin mir nicht klar, was wirklich Auftritt, obwohl, wie:
for i in range(2, 11):
print 1.0 % i
Drucke "1.0" zehn mal lieber als "0.5, 0.333333, 0.25" etc. wie ich erwartet (1/2 = 0.5, etc).
- Sie sind verwirrend, quotient und Rest.
- Vielleicht brauche ich, um Treffer wikipedia, aber hier ist, wie ich bin, mit diesen Worten: der Quotient ist der ganzzahlige Teil von dem Ergebnis, und der Rest ist der gebrochene Teil. E. g., für 8.0/3, der quotient = 2, und der Rest = 0.6666. Ist das falsch?
- ja, das ist falsch. der Rest ist 2. es ist das, was bleibt, nachdem Sie mehrfach abgezogen, der subtrahend vom minuend (bis Sie nicht mehr können)
- sorry, Sie subtrahieren den divisor form der Dividende, der Kurs
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich, kann man das Ergebnis bekommen, das Sie wollen, indem Sie etwas wie dieses:
Diese berechnet die (integer -) Rest, wie beschrieben von anderen. Dann teilen Sie durch den Nenner wieder, zu produzieren, die den Bruchteil der quotient.
Beachten Sie, dass ich multiplizieren Sie das Ergebnis von der modulo-operation von 1.0 zu gewährleisten, dass eine floating point division ist getan (und nicht als integer-division, deren Ergebnis 0).
Modulo erfolgt in integer-Kontext, und nicht bloß (Reste sind ganze zahlen). Daher:
Durch, dass ich vermute, Sie meine zu tun eine reguläre Fließkomma-division?
%
funktioniert auf floating-point-zahlen und geben ein nicht-ganzzahliges Ergebnis. (JavaScript zu.)Haben Sie verwirrt division und Modul.
"0.5, 0.333333, 0.25" etc. wie ich erwartet (1/2 = 0.5, etc)."
Das ist das Ergebnis division.
Nicht Modul.
Modul (
%
) ist der Rest nach der ganzzahligen division.Deine Beispiel-Werte sind einfache division, das ist die
/
Betreiber. Nicht die%
Betreiber.Wäre nicht dividieren 1 durch eine Zahl größer als es das Ergebnis 0 mit Rest 1?
Die Anzahl Theoretiker in der Menge kann mich korrigieren, aber ich denke, modulus/Rest definiert ist nur auf Ganzzahlen.
Wir haben 2 Arten der Teilung, dass wir definieren können, durch die Rückgabe-Typen:
Float: a/b. Zum Beispiel: 3/2=1.5
Int: a//b und a%b. Zum Beispiel: 3//2=1 und 3%2=1