Python 将1求和为偶数整数会使结果加倍

Python 将1求和为偶数整数会使结果加倍,python,Python,我试图提出一个简单的线性方法来检测一个整数是否为偶数,如果不是,则加1使其为偶数。所以我想到了这个: N = 62465 N += 1 if bool(N % 2) else N print N 如果N为奇数,则此操作正常,但如果为偶数,则返回双倍的值。这里发生了什么?常用的方法是先除以,然后再乘以 N = (N + 2 - 1)//2*2 这适用于非2的其他模块。当它为偶数时,您的N增加了一倍;你基本上是这样做的: if N % 2: N += 1 else: N += N

我试图提出一个简单的线性方法来检测一个整数是否为偶数,如果不是,则加1使其为偶数。所以我想到了这个:

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

如果
N
为奇数,则此操作正常,但如果为偶数,则返回双倍的值。这里发生了什么?

常用的方法是先除以,然后再乘以

N = (N + 2 - 1)//2*2
这适用于非2的其他模块。

当它为偶数时,您的
N
增加了一倍;你基本上是这样做的:

if N % 2:
    N += 1
else:
    N += N
如果N%2的值为0,则需要使用
N+=1(条件中隐含了
bool()

为简化此过程,您只需添加
N%2
,因为偶数为
0
,奇数为
1

N += N % 2

操作顺序如下:
N+=(1如果bool(N%2)else N)
。您需要
else 0
而不是
else N
。或者只是:
N+=N%2
Ohh我知道我的错误在哪里了。谢谢大家,有人介意发表评论,这样我就可以把它标记为接受了吗?两张反对票,没有解释为什么?美好的很明显,你不能让任何事情从你身边溜走。(我肯定我以前在这里说过这句话。奇怪的是,我再也找不到了)我非常喜欢你提议的方式,简单而优雅。谢谢