Как написать цикл while более эффективно в python?

#python

#python

Вопрос:

Я написал код, используя цикл while. Однако я успешно написал код, но он неэффективен. Пожалуйста, посмотрите цикл while: —

 struct_type = { 1:'slab', 2:'beam', 3:'column', 4:'footing' }
z = int(input("Enter the structure type as 1-slab,2-beam,3-column,4-footing"))
while (z != 1 and z != 2 and z != 3 and z != 4):
    print("Invalid Structure type")
    z = int(input("Enter only: 1-slab,2-beam,3-column,4-footing"))
print(z)
  

Как написать этот цикл while более эффективно?
Например

 while (z != [1, 2, 3, 4]):
  

или

 while (z != range(1:5)):
  

Но оба они дают ошибки.
пожалуйста, помогите в написании этого цикла while более эффективно.

Комментарии:

1. Вы имели в виду: while z not in [1,2,3,4]: ?

Ответ №1:

Просто сравните с ограничениями:

 while z < 1 or z > 4:
  

Ответ №2:

Вы можете использовать while z not in range(1, 5) довольно эффективный ( in проверки в объектах диапазона — O (1)).

Вы также можете сделать while z not in struct_type , поскольку 1..4 являются ключами struct_type . Это также O(1) .

Ответ №3:

Я думаю, вы ищете in предложение.

 while z not in [1,2,3,4]: