有人能解释一下为什么在下面的代码中消息"Found an instance without object"
没有和输出一起打印吗?你知道吗
filename= "S1-ADL1.dat"
with open(filename, 'r')as data:
for line in data:
valueList=line.split(' ')
print "valueList[247]"+valueList[247]
print "valueList[249]"+valueList[249]
if valueList[247] == '0' and valueList[249] == '0':
print "Found an instance without object"
continue
elif valueList[247]==0 and valueList[249]!=0:
valueList[247]=valueList[249]
valueList[246]=valueList[248]
print filename+' is written'
我得到的结果如下
valueList[247]0
valueList[249]0
valueList[247]0
valueList[249]0
valueList[247]0
valueList[249]0
S1-ADL1.dat is written
如您所见,有一些实例满足if语句,但它不打印if子句中的消息。你知道吗
同意BartoszKP的观点。你知道吗
在
split(' ')
方法之前使用strip()
方法。你知道吗可以打印代码中的值列表和
print "valueList:-" valueList
输入的检查列表吗?所以你会更清楚。你知道吗我测试了一些样本测试用例:
或者你可以写
if condition
如下:if valueList[247][0] == '0' and valueList[249][0] == '0':
这是因为拆分的最后一个结果中隐藏了换行符。在你阅读的每一个
line
中都有这样的内容:'x y ... z\n'
,因此split
的最后一个结果包含'z\n'
(例如"0\n"
)。或者它碰巧是'\r'
字符,或者其他一些空白字符。你知道吗尝试使用^{} :
如果可能在输入的片段之间有多个其他空白字符,您可以尝试:
把它们从每一块上分开。你知道吗
另外,你的第二个条件是错误的。如果不将片段转换为
int
,则应继续使用字符串:相关问题 更多 >
编程相关推荐