Причина, по которой 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")