я попытался создать программу на случай ошибки при вводе входных данных, но после этого она не получает новых выходных данных и продолжается в цикле

#python #loops

#питон #петли

Вопрос:

после того, как я наберу 5, он продолжит цикл и не доберется до оператора if

 def facility():  global user  while user != 1 and user != 2 and user != 3 and user != 4:  user =input("please choose between this four number. n[1/2/3/4]n")  if user == 1:  y = ("PBl Classroom")  elif user == 2:  y = ("meeting room")  elif user == 3:  y =("Workstation Computer Lab,ITMS")   elif user == 4:  y = ("swimming pool")  print("you have choose",y)  user = int(input("please choose your facility..n "))  

Ответ №1:

Вы используете int(input(...)) при первом вызове, но input(...) в функции. Таким образом, значения являются строками, а не целыми числами, и ваши сравнения будут неудачными.

Вот исправление с незначительными улучшениями:

 def facility():  user = int(input("please choose your facility..n "))  while user not in (1,2,3,4):  user = int(input("please choose between this four number. n[1/2/3/4]n"))  if user == 1:  y = ("PBl Classroom")  elif user == 2:  y = ("meeting room")  elif user == 3:  y =("Workstation Computer Lab,ITMS")   elif user == 4:  y = ("swimming pool")  print("you have chosen", y)  facility()