python中的模块化添加

时间:2011-07-13 20:14:55

标签: python math modular

我想在x中添加一个数字y,但是要将x换行保持在0到48之间。注意y可能是负数,但绝不会有大于48的数量。有没有比这更好的方法:

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

7 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:3)

如果您正在进行模运算,则只需使用模运算符。

x = (x + y) % 48

答案 2 :(得分:2)

你可以使用模运算符:

x = (x+y) % 48

答案 3 :(得分:2)

你可以使用

x = (x+y) % 48

这将为您提供任何数字的正x

答案 4 :(得分:2)

(x+ y)% 48不仅适合您。有关modulo here的更多信息,请参阅。

答案 5 :(得分:1)

(x + y)%48

用任何你喜欢的东西替换48。

答案 6 :(得分:1)

你也可以创建一个类来处理模运算,就像在这里完成的那样: http://anh.cs.luc.edu/331/code/mod_arith.py
http://anh.cs.luc.edu/331/code/mod.py