当idcter
超过maxid
时,为什么不重置为0?在
maxid=9999
idcter=9999
idcter += 1 if(idcter <= maxid) else 0
print('this is good: ' + str(idcter))
idcter += 1 if(idcter <= maxid) else 0
print('now this is weird: ' + str(idcter))
idcter=10000
idcter = idcter + 1 if(idcter <= maxid) else 0
print("that's better: " + str(idcter))
输出:
^{pr2}$所以这是一个简单的修复,但是为什么idacter在超过maxid
之后不会重置呢?在
的运算符优先级
由以下分组可视化
^{pr2}$这意味着如果条件不成立,递增
0
。在比较一下
其中,将
0
分配给相同情况下的结果。在顺便说一句,
10000
已经超过了你的maxid
的9999
。实现这种重置增量的一种典型方法是使用模运算符。在您的情况下:相关问题 更多 >
编程相关推荐