在python中是否允许“key not In container”,或者我们必须写“not(key In container)”

在python中是否允许“key not In container”,或者我们必须写“not(key In container)”,python,python-3.x,operators,contains,negation,Python,Python 3.x,Operators,Contains,Negation,在python中,我知道可以编写: happy_bag = list() if not (key in happy_bag): print(key, " ain't in da bag.") happy_bag = list() if key not in happy_bag: print(key, " ain't in da bag.") container = [] key = 1 if key not in container: print("Not fou

在python中,我知道可以编写:

happy_bag = list()

if not (key in happy_bag):
    print(key, " ain't in da bag.")
happy_bag = list()

if key not in happy_bag:
    print(key, " ain't in da bag.")
container = []
key = 1
if key not in container:
    print("Not found")
但也可以写下:

happy_bag = list()

if not (key in happy_bag):
    print(key, " ain't in da bag.")
happy_bag = list()

if key not in happy_bag:
    print(key, " ain't in da bag.")
container = []
key = 1
if key not in container:
    print("Not found")
此外,以下内容是合法的:

if key in happy_bag:
    print("Congratulations! you have a ", key, " in your bag!")
但是如果我们加上“是”这个词可以吗

if key is in happy_bag:
    print("Congratulations! you have a ", key, " in your bag!")

这样写是完全正确的:

happy_bag = list()

if not (key in happy_bag):
    print(key, " ain't in da bag.")
happy_bag = list()

if key not in happy_bag:
    print(key, " ain't in da bag.")
container = []
key = 1
if key not in container:
    print("Not found")
甚至有人建议这样做。从

使用非运算符而不是非运算符。。。是虽然两个表达式在功能上完全相同,但前者更具可读性且更可取

关于第二个问题,在python中不是正确的运算符。运算符用于测试参考标识:

a = []
b = []
c = a
assert(a == b) # good, the two lists compare equal as per list.__eq__
assert(a is b) # fails, the two names don't refer to the same object
assert(a is c) # good, c and a point to the same list

如果只是有一些交互式Python解释器来检查一下-标题和内容不同步。你似乎已经回答了标题,但却提出了一个新问题。只是一个问题:如果可能的话,你会期望它做什么?@MSeifert我想他们正在努力让它更接近英语。他们可能不打算对实际的接线员采取行动。不,那是不可能的。你不可能总是让代码读得很好。