如何判断一个变量是Ture还是1
比较运算符==将1跟True等价,那么如何去区分呢?下面这段代码print会执行,说明==认为1跟True等价
a = True
if a == 1 :
print("变量a是1")
我加了个数据整数型或布尔型的判断,感觉略显繁琐,还有其他更好的方法吗?
# a = True
a = 1
if a == 1 and type(a) == type(1):
print("变量a是1")
elif a == True and type(a) == type(True):
print("变量a是True")
else:
print("变量a是不是True也不是1") 调用Type()已经很快捷了。不过为什么要在弱类型语言里干这件事,把它们区分出来也不会有好事发生的 倒戈卸甲 发表于 2020-12-23 09:46
调用Type()已经很快捷了。不过为什么要在弱类型语言里干这件事,把它们区分出来也不会有好事发生的
你说得有点道理,因为我写了个函数,里面将True跟1作为两种不同的状态传参,然后出现就出BUG了 1和True等价,0和False等价
你可以直接用他们运算
>>> True+2
3
>>> False+20
20
>>> False+True
1 逃兵 发表于 2020-12-23 10:10
1和True等价,0和False等价
你可以直接用他们运算
只能说几乎等价吧,1是整数型,True是布尔型,不完全等价,还是可以区分 tryhi 发表于 2020-12-23 10:11
只能说几乎等价吧,1是整数型,True是布尔型,不完全等价,还是可以区分
bool是int的子类,并且仅有 True 和 False 两个实例
页:
[1]