13

我想将一个数字 y 添加到 x,但让 x 环绕以保持在 0 和 48 之间。注意 y 可能是负数,但幅度永远不会大于 48。有没有比这样做更好的方法:

x = x + y
if x >= 48:
    x = x - 48
elif x < 0:
    x = x + 48

?

4

7 回答 7

22
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
于 2011-07-13T20:16:49.697 回答
3

不仅(x+ y)% 48适合你。在此处查看有关模数的更多信息。

于 2011-07-13T20:18:58.227 回答
3

如果你在做模运算,你只需要使用模运算符。

x = (x + y) % 48
于 2011-07-13T20:17:29.867 回答
2

您可以使用模运算符:

x = (x+y) % 48
于 2011-07-13T20:17:08.387 回答
2

你可以使用

x = (x+y) % 48

这将使您x对任何数字都产生积极影响。

于 2011-07-13T20:17:39.240 回答
1

(x + y) % 48

随意替换 48。

于 2011-07-13T20:19:10.773 回答
1

您还可以创建一个类来处理模运算,就像这里所做的那样:http: //anh.cs.luc.edu/331/code/mod_arith.py http://anh.cs.luc.edu/331/
代码/mod.py

于 2014-08-11T10:25:45.420 回答