python-3.x - 有没有办法使用可变格式验证用户输入?
问题描述
我正在处理的项目是一个包含座位列表的飞机类。以下是座位列表的示例。我正在尝试在我的 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)]]
解决方案
您可以使用字典和键来获取值:
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")
推荐阅读
- java - 单元测试中@TestOnly 和@VisibleForTesting 有什么区别
- flutter - SHA-1 指纹证书 keytool 命令返回非法选项
- google-cloud-platform - 使用访问令牌使用 Google Cloud API 进行身份验证
- sql - 这两个 DML 语句有什么问题?
- c# - TimerTrigger 未触发该功能
- database - 我的 CM 压缩有什么问题?
- python - 将键值字典对应用于数据框中的多列
- jenkins - 无法使用 jenkins 在 tomcat9 中部署战争文件
- loops - 如何在ansible playbook的另一个任务中循环set_fact属性
- jq - jq中具有嵌套m:n结构的对象构造