首页 > 解决方案 > 有没有办法使用可变格式验证用户输入?

问题描述

我正在处理的项目是一个包含座位列表的飞机类。以下是座位列表的示例。我正在尝试在我的 book_seat() 中创建一个 try/except 块,以检查用户是否输入了正确的字符串以匹配其中一个座位,即。“Seat 1”甚至“Seat 200”。有没有办法可以通过格式或正则表达式扫描列表?我很难想出一个更好的方法来问这个问题,所以这里是我正在尝试做的一个例子:

while True:
    try:
        user_input = input("Please enter a seat number to book. (ie. 'Seat 1'))
        if user_input == 'Seat {}'.format(int):
            execute_function()
    except:
        print("sorry, you're entry is not valid. Please try again")
[['Seat 1', Seat('Economy',False)], ['Seat 2', Seat('Economy',False)], ['Seat 3', Seat('Economy',False)], ['Seat 4', Seat('Economy',False)], ['Seat 5', Seat('Economy',False)], ['Seat 6', Seat('Economy',False)], ['Seat 7', Seat('Economy',False)], ['Seat 8', Seat('Business',False)], ['Seat 9', Seat('Business',False)], ['Seat 10', Seat('First',False)]]

标签: python-3.x

解决方案


您可以使用字典和键来获取值:

dic = {'Economy': [1,  2,  3],
   'Business': [4, 5, 6]}


user_input = input("Please enter a seat number to book (ie. 'Seat 1')  :  ")
i = [int(s) for s in user_input.split() if s.isdigit()]
if i[0] in (dic['Economy'])  :
    execute_function()
else:

    print("sorry, you're entry is not valid. Please try again")
     

推荐阅读