当使用模数运算符时,我想要数字不是余数0

时间:2013-03-16 13:38:16

标签: python modulo

首先,我不得不说我的英语太差了 我找不到更好的文章标题。
无论如何,我想问你们,关于Python。

请查看以下代码。

for i in range(1,11):
    print(i,'-->',i%4)

结果

1 --> 1
2 --> 2
3 --> 3
4 --> 0
5 --> 1
6 --> 2
7 --> 3
8 --> 0
9 --> 1
10 --> 2

所有结果都没问题,除了那些4的倍数。我想4是4,8是4,12是4 ...不是0(零)。 像这样的东西。

1 --> 1
2 --> 2
3 --> 3
4 --> 4
5 --> 1
6 --> 2
7 --> 3
8 --> 4
9 --> 1
10 --> 2

任何线索?

提前致谢。

4 个答案:

答案 0 :(得分:9)

for i in range(1,11):
    print(i,'-->',(i-1)%4+1)

答案 1 :(得分:4)

我个人认为最直观(保持模数的意图更容易阅读):

for i in range(1,11):
    print(i,'-->',i%4 or 4)

答案 2 :(得分:2)

您可以使用这种简单的结构:

if i % 4 == 0:
    i = 4

可能我不明白你的问题。

答案 3 :(得分:0)

您可以尝试这样的事情:

for i in range(1,11):
    if i%4 == 0:
        print(i,'-->',4)
    else:
        print(i,'-->',i%4)

for i in range(1,11):
    print(i,'-->',4 if i%4 == 0 else i%4)