Python实际上是否包含布尔值?我知道你可以这样做:
checker = 1
if checker:
#dostuff
Run Code Online (Sandbox Code Playgroud)
但我很迂腐,喜欢看Java中的布尔.例如:
Boolean checker;
if (someDecision)
{
checker = true;
}
if(checker)
{
//some stuff
}
Run Code Online (Sandbox Code Playgroud)
Python中有布尔这样的东西吗?我似乎无法在文档中找到类似的东西.
我刚刚才知道有Truthy和Falsy在Python这是与正常不同的价值观True和False?
是否有人可以深入解释什么truthy和falsy值?
我应该在哪里使用它们?
truthy和True值以及falsy和False值之间有什么区别?
为什么这不是天真的预期?
class Foo(object):
def __init__(self):
self.bar = 3
def __bool__(self):
return self.bar > 10
foo = Foo()
if foo:
print 'x'
else:
print 'y'
Run Code Online (Sandbox Code Playgroud)
(输出是x)
def f1(x,y):
if x:
x = [1,2,3]
x.append(4)
else:
x = 2
return x + y
L1 = [1,2,3]
L2 = [55,66]
L3 = []
y = 3
print( f1(L3,y) ) # Line 1
print( L3 ) # Line 2
print( f1(L1,L2) ) # Line 3
print( L1 ) # Line 4
Run Code Online (Sandbox Code Playgroud)
#I想要理解这个表达,它是什么意思?"如果x:"是什么意思?通常在if语句之后总是有一个条件,但是这个没有.我怎么理解这个?它在这个功能中做了什么?
我有一组子类,应该都定义一个x应该评估为True或False 的属性.为了在忘记在子类中设置此值时捕获错误,我想在其超类中将其设置为真值评估导致错误的值.Python有这种行为的内置值吗?我有点期望NotImplemented这种行为,但它的评估结果是True.
我可以将其设置为numpy.array([0, 0])在那里if x:提高ValueError,但感觉不对.同样,我可以定义自己的类来__bool__引发异常.但是否有适合此目的的内置价值?
其他替代方案是设置属性(抽象与否)或根本不定义(所以我们得到AttributeError).
(我正在使用Python 3.4,以防万一)
这可能是一个非常愚蠢的问题,但我无法在其他任何地方找到答案,我已经看过了,但是我找不到与我的问题相关的任何内容。
题:
在python中,不知道其他语言,每当我们为内置类调用if语句时,它都会返回if语句解释的内容,例如,
a = 0
if a: print("Hello World")
Run Code Online (Sandbox Code Playgroud)
作为上述语句不打印任何东西if a是False。现在返回的是哪个方法False,或者是否有 if 语句调用的方法来知道它?
或者更准确地说,if 语句如何在更深层次的 Python 中工作?
我目前正在python中进行简单的文本冒险.基本上我希望randint选择1或2然后分配给right_wire,然后raw_input为wire_choice,然后匹配2以提供所需的结果.我相信你们可以弄清楚我到底想做什么.我在这附近还是离开了?谢谢!
right_wire = randint(1, 2)
wrong_wire = 0
if right_wire == 1:
wrong_wire = 2
elif right_wire == 2:
wrong_wire = 1
else:
print "ERROR"
while True:
print "Which wire do you pull?"
print
print "1. The red one."
print "2. The blue one."
print
wire_choice = raw_input('*>>*')
if wire_choice == 1 and right_wire == 1:
print "**BOMB DEFUSED**"
return 'engineering2'
elif wire_choice == 2 and right_wire == 2:
print "**BOMB DEFUSED**"
return 'engineering2'
elif wire_choice == 1 and right_wire …Run Code Online (Sandbox Code Playgroud) 我正在用新类型扩展 Python,并寻找新类型部分,我没有看到任何 bool 转换的内容。如何指定如何将我的类型转换为 bool?
例如,在下面的示例中,本机 numpy 类型 to 会以某种方式解释为 Python bool
import numpy as np
if (np.array(False)):
print 'hi'
else:
print 'hey'
Run Code Online (Sandbox Code Playgroud)
查看字节码,这对应于POP_JUMP_IF_FALSE但这似乎对于跟踪转换逻辑没有用处。
python ×9
boolean ×4
python-2.7 ×2
python-2.x ×2
adventure ×1
class ×1
numpy ×1
object ×1
python-3.x ×1
text-based ×1