从'1'开始的模运算结果
这是一个初学者的问题,但我找不到好的答案。
我有:
self.date = ( self.date + 1 ) % 31
所以结果是从 0 1 2 3 开始,最后是 29 30 0 1 ....
我该怎么做才能让它从 1 2 3 4 开始,并且最后的结果变成 30 31 1 2 3 ...,而且语法尽量简洁呢?
2 个回答
1
添加一个:
self.date = ((self.date + 1) % 31) + 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 % 31
,也就是 31 % 31
,结果是0。
如果你把1加在后面,当 date=30
时,你会得到 30 % 31
,结果还是 30
,然后再加1,就能得到你想要的 30, 31, 1。