为什么1不等于1?

时间:2021-01-09 07:52:25

标签: python boolean

给定:

print("The detail is", self.model.sibling(index.row(), 1, index).data())
detail = self.model.sibling(index.row(), 1, index).data()
print(" and detail is", detail, bool(detail == 1))
solid = bool(detail == 1)
print("Detail:", detail, "Solid", solid, "Detail", self.model.sibling(index.row(), 1, index).data())

我能得到什么:

The detail is 1
 and detail is 1 False
Detail: 1 Solid False Detail 1

所以 detail1 但它不等于 1。我错过了什么?

2 个答案:

答案 0 :(得分:0)

可能你的变量 detail 实际上是一个字符串,所以有问题的代码实际上会转换为:

"1" == 1

通过编写以下内容尝试将其转换为整数:

solid = int(detail) == 1

答案 1 :(得分:-1)

谢谢莉娜,你说得对。它是 PyQt 模型,在诊断问题时,我被 print() 方法的一个弱点发现了......

>>> a = '1'  
>>> a
'1'
>>> print(a)
1
>>>

看马,输出字符串上没有引号!铸造很好地修复了它。

这算作“最小的​​可重复示例”吗?或者我是否应该为 Leena 直接看到的一个简单问题发布几百行代码和我的数据库?

对于论坛警察,我知道我应该将其作为评论发布,但我无法使代码速记起作用。

相关问题