如何在Python中将True切换为False

如何在Python中将True切换为False,python,boolean,Python,Boolean,我需要做什么操作才能始终使假值变为真或使真值变为假? 换句话说,如何切换给定变量的布尔值 new_dict = {} for i in range(1, 101): new_dict[i] = False i = 2 while i < 101: for x in range(1, 101): if new_dict[x] % i == 0: a = new_dict[

我需要做什么操作才能始终使假值变为真或使真值变为假? 换句话说,如何切换给定变量的布尔值

    new_dict = {}
    for i in range(1, 101):
        new_dict[i] = False

    i = 2
    while i < 101:
        for x in range(1, 101):
            if new_dict[x] % i == 0:
                a = new_dict[x]
                new_dict[x] = not a
        i += 1
    for a in new_dict:
        print 'Light #%d --> %r' % (a, new_dict[a])
这里和这里的问题似乎是一样的,但在我的情况下,这个简单的概念根本不起作用


谢谢,我真的很感谢所有的帮助

例如,如果函数返回布尔值, 你可以做:

bool_value = not my_function()
注意布尔值会将其反转为相反的值。 它之所以有效,是因为在Python中:

>>> not True
False
>>> not False
True
因此:


假设变量
myBool
,则可以使用
not
关键字对其进行设置

myBool = True
print(myBool)
myBool = not myBool
print(myBool)
结果:

True
False

使用
not
操作符:

In [1]: b = True

In [2]: not b
Out[2]: False

In [3]: b = not b

In [4]: b
Out[4]: False

In [5]: not b
Out[5]: True

不符合逻辑?你只是想切换一个布尔值?不确定这是否被认为是一个简单的输入错误,但我很确定你要寻找的答案是:在你的条件下,用x%I==0替换新的[x]%I==0。。。问题是False%2(或任何数字)为0,而True%number为1。我对此并不十分满意,但最终的效果是,第一次通过时,你把一切都设置为真,然后再也不改变它。。。如果你做了你几乎肯定想要做的事情,并检查索引与值,它会像我认为你所期望的那样工作,或者如果x%I==0:new_dict[x]=not new_dict[x]至少会给出假值和真值的混合。@bjohnson谢谢,我知道,但它仍然不起作用。我在问题中添加了我的代码。它应该打印像真的,假的,真的,假的,真的等等,但它输出的一切都是假的。
True
False
In [1]: b = True

In [2]: not b
Out[2]: False

In [3]: b = not b

In [4]: b
Out[4]: False

In [5]: not b
Out[5]: True