Python 肾盂检查法

Python 肾盂检查法,python,if-statement,Python,If Statement,我想弄清楚什么是最适合做这种陈述的方式 if is not 100 or is not 101: do something: 如果您有一个整数值,并且希望测试它不是100而不是101,则可以在中对元组使用成员资格测试: if foo not in (100, 101): 您应该对整数使用身份测试(is和not is)。身份测试使用小整数(介于-5和255之间)这一事实是一个CPython优化细节。身份与拥有相同的价值不是一回事;两个对象可以具有相同的值,但不一定是相同的引用: >

我想弄清楚什么是最适合做这种陈述的方式

if is not 100 or is not 101:
    do something:

如果您有一个整数值,并且希望测试它不是100而不是101,则可以在中对元组使用
成员资格测试:

if foo not in (100, 101):
您应该对整数使用身份测试(
is
not is
)。身份测试使用小整数(介于-5和255之间)这一事实是一个CPython优化细节。身份与拥有相同的价值不是一回事;两个对象可以具有相同的值,但不一定是相同的引用:

>>> value1 = 4242
>>> value2 = 4242
>>> value1 == value2
True
>>> value1 is value2
False
>>> value3 = value1  # assignment
>>> value1 == value3
True
>>> value1 is value3
True

不是
接受两个操作数。左手操作数在哪里?你不应该用身份来测试平等性。使用
!=100