if语句和for循环

时间:2018-11-26 21:50:22

标签: python-3.x for-loop if-statement

这是我要运行的部分。它已经工作了,然后又开始混乱了。基本上,这意味着循环访问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:

1 个答案:

答案 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"):