если заявление и цикл - PullRequest
       2

если заявление и цикл

0 голосов
/ 27 ноября 2018

Это часть, которую я пытаюсь запустить.Это сработало, а потом начало портиться.По сути, он предназначен для итерации цикла for, а если inptype! = Sale, то он предназначен для пропуска итерации цикла и перехода к следующему.Однако, когда значение не является оператором, оно должно перейти к оператору else и продолжить, но это не так, и оно следует процедуре для 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 голосов
/ 27 ноября 2018

Первое:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...