2 если оператор с 1 еще разрушает цикл - PullRequest
2 голосов
/ 05 января 2020

здесь мой Python код

while True:
    a = int(input("enter a digit"))
    if a < 10:
        print("digit is less than 10")
    if a < 50 and a > 10:
        print("digit is more than 10")
    else:
        print("error")

, поэтому я сомневаюсь, что когда я запустил эту программу для (a <10), тогда она покажет правильный вывод с учетом оператора if, но это будет также выдайте вывод оператора else с помощью if. Но с условием if, упомянутым во второй фразе (a <50 и a> 10), выводом будет только «di git is more than 10», что правильно, но почему есть дополнительный вывод else, когда значение меньше 10.

Ответы [ 4 ]

2 голосов
/ 05 января 2020

Если вы хотите, чтобы все ваши операторы if были частью одного и того же блока if..else, вы должны сделать:

while True:
    a = int(input("enter a digit"))
    if a < 10:
        print("digit is less than 10")
    elif a < 50 and a > 10:
        print("digit is more than 10")
    else:
        print("error")

Объяснение:

Ваш текущий код имеет два разных if..else блока:

a = int(input("enter a digit"))
if a < 10:
    print("digit is less than 10")


if a < 50 and a > 10:
    print("digit is more than 10")
else:
    print("error")

Так что если a<10, он напечатает "digit is less than 10". Затем этот блок if заканчивается, и ваш код входит во второй блок if. Поскольку a не находится между 10 и 50, он введет оператор else и напечатает "error".

0 голосов
/ 05 января 2020

В тех ситуациях, когда вам нужно больше операторов, вам нужно использовать оператор elif. Это решение: тогда как True: a = int (input ("введите di git")), если a <10: print ("di git меньше 10") elif a <50 и a> 10 : print («di git больше 10») else: print («error»)

0 голосов
/ 05 января 2020

Это происходит потому, что в последовательном коде работает как

If Statememt (a <10) </p>

If else Statement (a> 10 и a <50) </p>

В случае a < 10:

, если Statment a<10 Печать

Если Statment 10 < a < 50 :( false), так что else Печать выполняется

0 голосов
/ 05 января 2020

Это потому, что у вас есть два if оператора, вам нужен вывод elif

 if a < 10:
     print("digit is less than 10")
 elif a < 50 and a > 10:
     print("digit is more than 10")
 else:
     print("error") 

:

enter a digit1
digit is less than 10
enter a digit50
error
enter a digit49
digit is more than 10
enter a digit
enter a digit90
error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...