我想在x中添加一个数字y,但是要将x换行保持在0到48之间。注意y可能是负数,但绝不会有大于48的数量。有没有比这更好的方法:
x = x + y
if x >= 48:
x = x - 48
elif x < 0:
x = x + 48
答案 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