我想要一个简单的函数返回一个数字的mod但是在n%n的情况下我想要值n而不是0。
我的功能是:
def special_mod(m,n):
if m%n != 0:
return m%n
else
return n
我真正想要的是不包含条件的单线逻辑。 FYI:(m + 1)%n,m%(n + 1)不适用于所有输入(我的输入)
逻辑上我想要这样的东西
原始模式:0 1 2 3 4 5(对于n = 6)我不喜欢
我的特殊模式:6 1 2 3 4 5(对于n = 6)循环值变为 6后6和1后6
这可以在不使用m!= n?
等条件的情况下实现答案 0 :(得分:2)
任何原因:(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]
答案 1 :(得分:0)
m%n or n
或(m-1)%n+1
可以解决问题。