【发布时间】:2014-11-13 06:07:15
【问题描述】:
我正在使用This 并且正在做
if sheet.row_values(rownum)[0] is not 'Value':
....print sheet.row_values(rownum)[0]
在我这样做之后,我仍然会打印出Value。难道sheet.row_values(rownum)[0] 值不是字符串?或者为什么If 语句不起作用?
【问题讨论】:
我正在使用This 并且正在做
if sheet.row_values(rownum)[0] is not 'Value':
....print sheet.row_values(rownum)[0]
在我这样做之后,我仍然会打印出Value。难道sheet.row_values(rownum)[0] 值不是字符串?或者为什么If 语句不起作用?
【问题讨论】:
is 正在测试对象的身份。
如果我要写:
a = 1
b = 1
a is b # not guaranteed to be true
这是因为变量本身可能指向不同的数据,这是你的情况。
使用== 相等运算符会给你想要的结果,因为它实际上会查看内容,而不是字符串标识符。
注意当您将变量与 None 进行比较时,is 运算符是可以的,因为实际上只有一个 None 对象。
【讨论】: