相关疑难解决方法(0)

理解Python的"是"运算符

is运营商不匹配变量的值,但这些实例本身.

它到底意味着什么?

我声明了两个变量命名xy在两个变量中分配相同的值,但是当我使用is运算符时它返回false .

我需要澄清一下.这是我的代码.

x = [1, 2, 3]
y = [1, 2, 3]

print x is y #It prints false!
Run Code Online (Sandbox Code Playgroud)

python operators python-3.x

102
推荐指数
5
解决办法
8万
查看次数

什么是蟒蛇中的Truthy和Falsy?它与真与假有什么不同?

我刚刚才知道有TruthyFalsy在Python这是与正常不同的价值观TrueFalse

是否有人可以深入解释什么truthyfalsy值?

我应该在哪里使用它们?

truthyTrue值以及falsyFalse值之间有什么区别?

python

92
推荐指数
4
解决办法
3万
查看次数

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:类覆盖"是"行为

我正在编写一个封装任意对象的类,包括简单类型.我希望"is"关键字对封装的值进行操作,例如此行为:

Wrapper(True) is True -> True
Wrapper(False) is True -> False
Wrapper(None) is None -> True
Wrapper(1) is 1 -> True
Run Code Online (Sandbox Code Playgroud)

是否有任何对象方法可以覆盖以获得此行为?

python

18
推荐指数
2
解决办法
6933
查看次数

python与numpy中的布尔和类型检查

if今天在python 条款中遇到了意外的结果:

import numpy
if numpy.allclose(6.0, 6.1, rtol=0, atol=0.5):
    print 'close enough'  # works as expected (prints message)

if numpy.allclose(6.0, 6.1, rtol=0, atol=0.5) is True:
    print 'close enough'  # does NOT work as expected (prints nothing)
Run Code Online (Sandbox Code Playgroud)

经过一番探讨(即这个问题,特别是这个答案)之后,我明白了原因:type返回的numpy.allclose()numpy.bool_而不是简单的旧bool,而且显然是foo = numpy.bool_(1),然后if foo将评估,True同时if foo is True将评估False.这似乎是is运营商的工作.

我的问题是:为什么numpy有自己的布尔类型,根据这种情况,最佳做法是什么?我可以写逃脱if foo:得到预期的行为在上面的例子,但我喜欢更严格if foo is True:,因为它排除之类的东西2,并 …

python boolean numpy pep8

13
推荐指数
2
解决办法
3780
查看次数

在Python中评估布尔表达式

对象在Python中评估的真值是什么?

相关问题

python boolean object

11
推荐指数
2
解决办法
1万
查看次数

Python 中内置常量 True 和 False 是唯一的吗?

在 Python 中,内置常量 None 保证是单数。这种情况只有一个例子。

其他内置类型的情况并非如此。具有相同内容的字符串或数字并不唯一。两个字符串“a”和“a”不是唯一的,而是具有不同的实例。对于具有相同内部值的两个数字(例如 1.0 和 1.0)也是如此。

内置布尔常量 True 和 False 是否像 None 一样唯一,或者它们是否有不同的实例?

一个具体的例子是:

value = 1 == 1
Run Code Online (Sandbox Code Playgroud)

在这种情况下与?value相同的实例True

python

4
推荐指数
1
解决办法
2065
查看次数

标签 统计

python ×7

boolean ×3

if-statement ×1

numpy ×1

object ×1

operators ×1

pep8 ×1

python-3.x ×1