将1加到偶数整数会使结果加倍

时间:2014-09-27 22:45:32

标签: python

我试图想出一个简单的在线来检测一个整数是否是偶数,如果没有加1则使其均匀。所以我想出了这个:

N = 62465
N += 1 if bool(N % 2) else N
print N

如果N是奇数,这可以正常工作,但如果是偶数则返回 double 该值。这里发生了什么?

2 个答案:

答案 0 :(得分:3)

当你的N是偶数时,你加倍;你基本上这样做:

if N % 2:
    N += 1
else:
    N += N

您希望改为使用N += 1 if N % 2 else 0(条件限制中隐含bool())。

为简化起见,您只需添加N % 2,即0为偶数,1为奇数:

N += N % 2

答案 1 :(得分:1)

经常使用的方法是分割然后乘以。

N = (N + 2 - 1)//2*2

这适用于非2的其他模块。