相关疑难解决方法(0)

用'is'替换'=='来比较布尔值是否安全

我做了几个布尔比较:

>>> (True or False) is True
True
>>> (True or False) == True
True
Run Code Online (Sandbox Code Playgroud)

这听起来像==is是布尔值互换.

有时使用起来更清楚 is

我想知道:

TrueFalsepython中预分配?

bool(var)始终返回相同True(或False与预分配)True(或False)?

它是安全的替代==is比较布尔值?


这不是最佳实践.

我只是想知道真相.

python

46
推荐指数
4
解决办法
5万
查看次数

Python布尔值 - 如果x:,则vs x == True,vs,如果x为True

如果以前曾经问过这个问题,我会道歉,但是我徒劳地搜索了我的确切问题的答案.基本上,使用Python 2.7,我有一个运行一系列地理处理工具的程序,取决于用户在脚本中调整的一系列True/False变量所需的内容,例如

x = True

if x:
    run function
Run Code Online (Sandbox Code Playgroud)

但是,我现在发现x不需要字面上的"True"来运行该函数.例如:

In: x = True
    if x:
        print True

Out: True

In: x = 123
    if x:
        print True

Out: True

In: x = 'False'
    if x:
        print True

Out: True

In: x = False
    if x:
        print True

Out: 
Run Code Online (Sandbox Code Playgroud)

因此,除False之外的任何值似乎都会计算为True,如果x == Truex为True,则不会出现这种情况.看作PEP 8强烈建议仅使用if x: variant,有人可以解释为什么会出现这种情况吗?似乎如果x:更像是"如果x不是假"或"如果x存在"的测试.考虑到这一点,我相信如果x是真的我应该使用:在这种情况下,尽管PEP 8必须说.

亲切的问候

python if-statement boolean

24
推荐指数
2
解决办法
3万
查看次数

标签 统计

python ×2

boolean ×1

if-statement ×1