xに数値yを追加したいのですが、xをラップアラウンドして0から48の間に保つようにします。yは負になる可能性がありますが、48を超える大きさになることはありません。これを行うより良い方法はありますか。
x = x + y
if x >= 48:
x = x - 48
elif x < 0:
x = x + 48
?
x = (x + y) % 48
モジュロ演算子はあなたの友達です。
>>> 48 % 48
0: 0
>>> 49 % 48
1: 1
>>> -1 % 48
2: 47
>>> -12 % 48
3: 36
>>> 0 % 48
4: 0
>>> 12 % 48
5: 12
モジュラー算術を実行している場合は、モジュロ演算子を使用する必要があります。
x = (x + y) % 48
(x+ y)% 48
あなたにぴったりではないでしょう。モジュロの詳細については、こちらをご覧ください。
モジュロ演算子を使用できます。
x = (x+y) % 48
あなたはただ使うことができます
x = (x+y) % 48
x
これはあなたにどんな数に対してもポジティブを与えるでしょう。
(x + y)%48
48を好きなものに置き換えてください。
http://anh.cs.luc.edu/331/code/mod_arith.py http://anh.cs.luc.edu/331/のように、モジュラー演算を処理するクラスを作成することもできます。
code / mod.py