无法弄清楚为什么两个值"看起来"相同但不相等

时间:2015-12-31 13:46:37

标签: python if-statement conditional pycharm

我正在Python 2.6.6中的PyCharm上编写一个应用程序而没有得到我期望的输出:

if VAR1 != row2:
    print "Status 1: %s" %VAR1
    print "Status 2: %s" %row2
    print "%s != %s" % (VAR1, row2)

输出:

Status 1: 3
Status 2: 3
3 != (3L,)

有人知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:3)

row2是一个包含1个元素的元组。 字符串的%格式可以与单个值或一个或多个值的元组一起使用。

print "Status 2: %s" %row2中,解压缩元组并使用唯一元素。在print "%s != %s" % (VAR1, row2)中,您已将元组row2打包到另一个元组中,因此第二个%s显示此元组的表示形式,例如(3,)