回答:
あなたはモジュロ演算子を探しています:
a % b
例えば:
26 % 7
もちろん、多分彼らはあなたがそれを自分で実装することを望んでいましたが、それもそれほど難しくはないでしょう。
-10 % 3 == 2
。ただしa/b*b + a%b == a
、Pythonは常に-Infinityに丸められるため、依然として当てはまります。他の一部の言語とは異なり、0に丸められても-1を返します。
%
は、Python が真のモジュラスを実行するためです。これは、範囲の値を返し[0, divisor)
、フロアされた除算と適切にペアになります(負の無限大に向かって)。C言語は、%
範囲の値を返し(-divisor, divisor)
、標準の除算(ゼロに向かって)とペアになる剰余演算に演算子を使用します。
26%7(残りを取得します)
26/7(除数は浮動小数点値にすることができます)
26 // 7(除数のみ整数値を取得します))
Python 3.7から、新しいmath.remainder()
関数があります。
from math import remainder
print(remainder(26,7))
出力:
-2.0 # not 5
上記のように、とは異なります%
。
ドキュメントの引用:
数学。余り(x、y)
yに関するxのIEEE 754スタイルの剰余を返します。有限xと有限非ゼロyの場合、これはx-n * yの差です。ここで、nは商x / yの正確な値に最も近い整数です。x / yが2つの連続する整数のちょうど中間にある場合、nには最も近い偶数の整数が使用されます。したがって、剰余r =残り(x、y)は、常にabs(r)<= 0.5 * abs(y)を満たします。
特別な場合はIEEE 754に従います:特に、remainer(x、math.inf)は、任意の有限xに対してはxであり、remainer(x、0)と残り(math.inf、x)は、非NaN xに対してValueErrorを発生させます。剰余演算の結果がゼロの場合、そのゼロはxと同じ符号になります。
IEEE 754 2進浮動小数点を使用するプラットフォームでは、この演算の結果は常に正確に表現可能です。丸めエラーは発生しません。
問題29962では、新しい関数を作成するための根拠について説明しています。
分割するときは、/の代わりに%を使用します。これで残りが返されます。だからあなたの場合
26 % 7 = 5
Moduloが正しい答えですが、手動で行う場合はこれでうまくいくはずです。
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
剰余演算子を使用して剰余を見つけることができます例
a=14
b=10
print(a%b)
印刷します4
除算の残りの問題が必要な場合は、数学と同様に、実際の残りのルールを使用してください。確かに、これは10進数の出力を与えません。
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
これを電卓形式で作成したい場合は、に置き換えvalone = 8
てくださいvalone = int(input("Value One"))
。でも同じことをvaltwo = 3
行いますが、異なる変数は明らかに異なります。
valone/valtwo
int にキャストする必要があります。それ以外の場合は、浮動小数点数になります。
関数を定義して、number1%number2を返すrem(number1、number2)のような2つの値で余りを呼び出し、whileを作成してtrueに設定し、1と2を保持する関数の2つの入力を出力してから、print(rem (数値1、数値2)