2

首先,我不得不说我的英语太差了。
我找不到更好的这篇文章的标题。
无论如何,我想问你们关于 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

4 回答 4

9
for i in range(1,11):
    print(i,'-->',(i-1)%4+1)
于 2013-03-16T13:42:56.203 回答
4

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

for i in range(1,11):
    print(i,'-->',i%4 or 4)
于 2013-03-16T13:49:39.673 回答
2

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

if i % 4 == 0:
    i = 4

可能是我不明白你的问题。

于 2013-03-16T13:47:00.900 回答
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)
于 2013-03-16T13:48:00.613 回答