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结果的内容.
那么我应该使用哪个选项?
测试0是(imo)最好通过测试来完成0.这也表明可能还有其他值而不仅仅是0和1.
如果调用的函数真的只返回0成功,并1在无法说Yes/No,Success/Failure,True/False等等,那么我认为功能是问题,并应(如适用)固定返回True和False代替.