我想要一个简单的函数,它返回一个数字的mod,但在n%n的情况下,我想要值n而不是0。
我的函数是:
def special_mod(m,n):
if m%n != 0:
return m%n
else
return n
我真正想要的是一个不包含条件的单行逻辑。仅供参考:(m+1)%n,m%(n+1)不适用于所有输入(我的输入)
从逻辑上讲,我想要这样的东西
我不喜欢的原始模组:0 1 2 3 4 5(对于n = 6)
我的特殊模组:6 1 2 3 4 5(对于 n = 6)循环值为5 后 6 和 6 后 1
可以在不使用 m!=n 等条件的情况下实现吗?
任何原因:(m-1)%n+1
不起作用,例如:
>>> n = 6
>>> [(m-1)%n+1 for m in range(12)]
[6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]
m%n or n
或(m-1)%n+1
就可以了。