Coding1014 Ответов: 2

Как я могу остановить цикл от того, чтобы быть непрерывным циклом?


userChoice2 = input("What is the coin type you want to count?: ")
while userChoice2 not in ["1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2"]:
       print("Wrong input")
       print("You have to pick one from" "1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2")



If an invalid response is entered the program continuously prints the final two print commands.

What I have tried:

I have tried using a function and making the while loop true and false.

0x01AA

input нужно быть внутри while loop

Coding1014

Где в цикле while?

2 Ответов

Рейтинг:
5

CPallini

Попробуйте также

allowed =  ["1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2"]
while True:
  userChoice2 = input("What is the coin type you want to count?: ")
  if userChoice2 in allowed:
    break
  print("you have to pick one from ", allowed)


Рейтинг:
12

OriginalGriff

Посмотрите на свой код: цикл состоит из трех строк:

while userChoice2 not in ["1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2"]:
       print("Wrong input")
       print("You have to pick one from" "1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2")
Но ни один из них не меняет значения в userchoice2 поэтому, как только вы войдете в цикл с плохим входом, вы будете постоянно проверять одно и то же плохое значение и печатать одни и те же сообщения.
Что вам нужно сделать, так это скопировать input постройте так, чтобы после печати сообщений об ошибках вы могли получить новое значение:
userChoice2 = input("What is the coin type you want to count?: ")
while userChoice2 not in ["1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2"]:
       print("Wrong input")
       print("You have to pick one from" "1p", "2p", "5p", "10p", "20p", "50p", "£1", "£2")
       userChoice2 = input("What is the coin type you want to count?: ")