почему процесс ввода не может вернуться после еще в Python - PullRequest
2 голосов
/ 01 июля 2019

У меня есть 2 входа для моего приложения, a и b.Я хочу показать входные данные, если моя начальная переменная не равна 0. Вот мой код:

import random
init = 100
while init > 0:
    x = random.randint(0,24)
    a = int(input("input value a:"))
    if a < 25:
        b = int(input("input value b"))
        if b <= init:
            init -= b
        else:
            print("b should smaller than init")
    else:
        print("a should between 0 and 24")

Когда я запускаю и ставлю значение для a больше 25, я получаю else a < 25,и снова перенаправить на входное значение a, пока оно не станет меньше 25. Когда я поместил значение b больше init, вывод с else b <= init был напечатан, но я не был перенаправлен на ввод b снова,вместо ввода значения a после while.Как перенаправить на ту часть, куда я ввожу b?

1 Ответ

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

Причина, по которой b не будет перенаправлен снова, если он больше init, заключается в том, что его значение удалено из init, поэтому init > 0 становится ложным.

Я бы порекомендовал попробовать это:

import random
init = 100
a = 25
b = 101
while init > 0:
  x = random.randint(0,24)
  a = int(input("input value a:"))
  if a < 25:
    b = init + 1
    while b > init:
        int(input("input value b"))
        if b > init:
           print("b should smaller than init") 
  else:
    print("a should between 0 and 24")

По сути, он устанавливает b больше init, поэтому цикл while b > init активируется, и он продолжает запрашивать у пользователя print("b should smaller than init"), пока они не введут значение b меньше init.

Обновление

Вот код для выхода из цикла while, как OP спросил в комментариях:

import random
init = 100
while (a > 24 or a < 0) and b < init:
  x = random.randint(0,24)
  a = int(input("input value a:"))
  if a < 25 and a > 0:
    b = init + 1
    while b > init:
        int(input("input value b"))
        if b > init:
           print("b should smaller than init") 
  else:
    print("a should between 0 and 24")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...