模数结果从'1'开始

时间:2011-03-18 16:16:19

标签: python modulo

这是一个初学者问题,但我找不到一个好的答案。

我有:

self.date = ( self.date + 1 ) % 31

所以结果从0 1 2 3开始......并以29 30 0 1结束....

如何将它移动到1 2 3 4开始并导致30 31 1 2 3 ...尽可能清晰的语法?

2 个答案:

答案 0 :(得分:1)

添加一个:

self.date = ((self.date + 1) % 31) + 1

答案 1 :(得分:1)

self.date = (self.date % 31) + 1

我认为这就是你的意思。

编辑:我看到你对另一个答案的评论,这里是你正在做的事情的解释:

(self.date % 31)表示取日期值并在除以31时找到余数(您知道)。如果您使用self.date +1 % 31,那么从date = 0开始,您将获得1,2,3..30。在date=30时,结果为30+1 % 3131 % 31为0。

如果您添加1后,在date=30,您将30 % 31,仍然会给您30,然后+1给您想要的30,31,1。