这是我要运行的部分。它已经工作了,然后又开始混乱了。基本上,这意味着循环访问for循环,如果inptype!= sale,则意味着跳过循环的迭代并继续进行下一个循环。但是,如果该值不等于该语句,则应跳至else语句并继续执行,但不这样做,即使值等于sale,它也会遵循inptype!= sale的过程。
这是我的代码
for row in reader:
inpname = str(row[15])
inptype = str(row[19])
print(inptype)
print (inpname)
if not row: # if row is blank
print("not row")
continue# continue loop on next iteration of for loop
elif "CUSTOMER DISCOUNT" in inpname:
print("customer dis")
continue
elif inptype != "Sale" or "sale" or "SALE":
continue
else:
答案 0 :(得分:0)
第一:
inpname = str(row[15])
接受具有数组状对象索引16的字段的内容,并将结果转换为字符串。由于这显然不会失败-您会在这里看到异常并报告一个完全不同的错误-我们可以得出结论:row
不是None
。
现在看看if not row:
:由于row
不是None
,因此continue
将不会执行。
第二:
在elif inptype != "Sale" or "sale" or "SALE":
中,or
是布尔运算。您在这里拥有三个单独的术语:inptype != "Sale"
,"sale"
,"SALE"
。由于两个字符串都不为空,因此后两项始终取值为True
。因此,在继续对代码进行任何进一步分析之前,请将该行改写为:
elif (inptype != "Sale") or (inptype != "sale") or (inptype != "SALE"):