在if语句中检查0的Pythonic方法?

Vol*_*ity 2 python if-statement

在编写素数测试器时,我遇到了一个有趣的想法.当你想要做一些事情,如果一个操作的结果0,这是更好的('pythonic')解决它的方式?

# option A - comparison
if a % b == 0:
    print('a is divisible by b')

# option B - is operator
if a % b is 0:
    print('a is divisible by b')

# option C - boolean not
if not a % b:
    print('a is divisible by b')
Run Code Online (Sandbox Code Playgroud)

PEP 8表示,与单身人士的比较None应与is运营商进行.它还说检查空序列应该使用not,而不是将布尔值与==或比较is.但是,它没有提到任何关于检查0结果的内容.

那么我应该使用哪个选项?

Seb*_*ach 6

测试0是(imo)最好通过测试来完成0.这也表明可能还有其他值而不仅仅是01.

如果调用的函数真的只返回0成功,并1在无法说Yes/No,Success/Failure,True/False等等,那么我认为功能是问题,并应(如适用)固定返回TrueFalse代替.