python中的一些奇怪效果

时间:2019-05-29 16:19:11

标签: python

为什么会这样?一些优化?

代码:

n = 3
for i in range(0, n):
    left = (int(i-1) % (n-1))
    right = (int(i+1) % (n-1))
    print(left, right)

输出:

1 1
0 0
1 1

2 个答案:

答案 0 :(得分:-1)

如何看待数学问题。

l = i - 1
m = i + 1 = l + 2

(不确定在这里如何使用mathjax)

然后您要进行模块化算术

l % n - 1 = l % 2 = k

然后选择合适的

m % n - 1 = m % 2 = (l + 2) % 2 = l % 2 + 2 % 2 = l % 2 + 0 = k 

因此,这两个mod计算都将获得相同的输出。

答案 1 :(得分:-2)

似乎我是某种迭代器,并且不支持加法/减法
固定:

n = 3
for i in range(0, n):
    left = (int(i)+1 % (n-1))
    right = (int(i)-1 % (n-1))
    print(left, right)