неправильный ответ с вложенным если в Python - PullRequest
0 голосов
/ 10 июля 2019

Я ожидаю 3 значения в ответ, но мой код ничего не возвращает.

Спасибо

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)
elif a == 2:
    print(2)
elif a == 3:
    print(3)
else:
    print(a)

Ответы [ 4 ]

1 голос
/ 10 июля 2019

Это потому что ваше первое условие выполнено, if a > 0.Из-за этого код перемещается по этому пути и не удовлетворяет двум вложенным условиям a == 1 или a == 2.

0 голосов
/ 10 июля 2019

Первый оператор if встречается, так как значение a больше 0. Результат, который вы ищете, может быть достигнут с помощью следующего блока if / elif:

a = 3
if a == 3:
    print(3)
elif a == 2:
    print(2)
elif a == 1:
    print(1)
else:
    print(a)

Выше будет проверять переменную для трех условий, печатая желаемый результат. Else: перехватит любой другой ввод и напечатает переменную.

0 голосов
/ 10 июля 2019

elif выполняется только в том случае, если условие if равно False, поэтому вам может потребоваться:

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)

if a == 3:
    print(3)
else:
    print(a)

Вывод:

3
0 голосов
/ 10 июля 2019

, поскольку a == 3, ваш первый if удовлетворен (другие elif (s) не сработают, потому что они срабатывают только в случае неудачи предыдущих if), тогда ваш код проверит, если a == 1 или 2 (что не тот случай) значит твой код ничего не печатает. Вы должны изменить свой код следующим образом

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)
if a == 2:
    print(2)
if a == 3:
    print(3)
else:
    print(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...