Python 3.x 如何使if语句正确响应用户输入?

Python 3.x 如何使if语句正确响应用户输入?,python-3.x,Python 3.x,我的任务是为一个只有一条跑道的当地机场编写空中交通管制应用程序。当机场繁忙时,希望起飞或降落的飞机不得不等待。实现一个ATCclass,它使用两个队列,一个用于等待起飞的飞机,另一个用于希望降落的飞机。着陆飞机优先于希望起飞的飞机 我的ATC类应该实现以下方法:着陆(标志):此方法获取飞行标志并将其添加到着陆队列。起飞(标志):此方法获取飞行标志并将其添加到起飞队列。next():此方法查看队列并确定飞机是否可以起飞或降落。然后,它从相应的队列中删除飞机的飞行标志,并打印动作和呼号。例如: 起飞

我的任务是为一个只有一条跑道的当地机场编写空中交通管制应用程序。当机场繁忙时,希望起飞或降落的飞机不得不等待。实现一个ATCclass,它使用两个队列,一个用于等待起飞的飞机,另一个用于希望降落的飞机。着陆飞机优先于希望起飞的飞机

我的ATC类应该实现以下方法:着陆(标志):此方法获取飞行标志并将其添加到着陆队列。起飞(标志):此方法获取飞行标志并将其添加到起飞队列。next():此方法查看队列并确定飞机是否可以起飞或降落。然后,它从相应的队列中删除飞机的飞行标志,并打印动作和呼号。例如:
起飞AA1943
着陆AA1243

现在由于某种原因,当我输入一个大于5的数字时,它不会在屏幕上打印出所需的“未知选择!重试…”

这是我的密码:

class ATC:

    def __init__(self):
        self.__queue_landing = []
        self.__queue_takeoff = []

    def take_off(self, flight_code):
        self.__queue_takeoff.append(flight_code)

    def land(self, flight_code):
        self.__queue_landing.append(flight_code)

    def next(self):
        if len(self.__queue_landing) > 0:
            print('Land', self.__queue_landing.pop(0))
        elif len(self.__queue_takeoff) > 0:
            print('Take off', self.__queue_takeoff.pop(0))
        else:
            print('No flights to land or take off!')


def main():

    atc = ATC()
    while True:
        print('1. Take off')
        print('2. Land')
        print('3. Next')
        print('4. Quit')
        ch = int(input("Choice: "))
        if ch < 1 or ch > 5:
            print("Unknown choice! Try again...")
        elif ch == 1:
            flight = input("Please enter a flight sign: ")
            atc.take_off(flight)
        elif ch == 2:
            flight = input("Please enter a flight sign: ")
            atc.land(flight)
        elif ch == 3:
            atc.next()
        else:
            break
        print()


main()
等级ATC:
定义初始化(自):
self.\u队列\u登陆=[]
self.\uu队列\u起飞=[]
def起飞(自身、航班代码):
self.\队列\起飞.附加(航班代码)
def着陆(自身,航班代码):
self.\uuu队列\u着陆.append(航班代码)
def next(自我):
如果len(self.\u queue\u landing)>0:
打印('Land',self.\u queue\u landing.pop(0))
elif len(自动排队起飞)>0:
打印('Take off',self.\u queue\u Take.pop(0))
其他:
打印('禁止航班降落或起飞!')
def main():
atc=atc()
尽管如此:
打印('1.起飞')
打印('2.土地')
打印('3.下一步')
打印('4.退出')
ch=int(输入(“选择:”)
如果ch<1或ch>5:
打印(“未知选择!重试…”)
elif ch==1:
航班=输入(“请输入航班标志:”)
空中交通管制起飞(航班)
elif ch==2:
航班=输入(“请输入航班标志:”)
空管陆地(飞行)
elif ch==3:
atc.next()
其他:
打破
打印()
main()

任何帮助都将不胜感激

我没有具体解决您的问题,但它不应该是“…或ch>=5”吗?5也不是一个有效的选择,但你的方式似乎是这样。你的代码将显示
未知选择适用于除ch==5以外的所有情况。否则,似乎没有错误。