Python 是否有更好的方法来检查一系列输入是否符合特定的停止条件?
(Python 3.7) 我有一个类似于下面的程序。我只是想找出是否有更好的方法来检查任何用户输入是否匹配“结束”条件,我确实需要分别保存每个输入Python 是否有更好的方法来检查一系列输入是否符合特定的停止条件?,python,python-3.x,user-input,exit,stop-words,Python,Python 3.x,User Input,Exit,Stop Words,(Python 3.7) 我有一个类似于下面的程序。我只是想找出是否有更好的方法来检查任何用户输入是否匹配“结束”条件,我确实需要分别保存每个输入 为True时: fname=输入(“输入客户名字:”) 如果fname==“end”: 打破 lname=输入(“输入客户姓氏:”) 如果lname==“end”: 打破 电子邮件=输入(“输入客户电子邮件:”) 如果电子邮件==“结束”: 打破 num=输入(“输入客户id:”) 如果num==“end”: 打破 elif not num.isdi
为True时:
fname=输入(“输入客户名字:”)
如果fname==“end”:
打破
lname=输入(“输入客户姓氏:”)
如果lname==“end”:
打破
电子邮件=输入(“输入客户电子邮件:”)
如果电子邮件==“结束”:
打破
num=输入(“输入客户id:”)
如果num==“end”:
打破
elif not num.isdigit():
num=-1
#这里不担心错误
num=int(num)
打印(fname、lname、email、num)
打印(“用户已结束程序”)
我不担心这个阶段的错误,只是想在这里集思广益,讨论一下最干净的实现。我将有很多输入,因此我希望我不必为每个输入反复包含相同的if语句。这将是创建用户异常的好机会:
class UserExit(BaseException):
pass
def get_input(prompt):
response = input(prompt)
if response=="end":
raise UserExit("User Exit.")
return response
try:
while True:
fname = get_input("Enter Customer first name: ")
lname = get_input("Enter Customer last name: ")
email = get_input("Enter Customer email: ")
num = get_input("Enter Customer id:")
if not num.isdigit():
num = -1
else:
num = int(num)
print (fname,lname,email,num)
except UserExit as e:
print ("User ended program.")
为什么要让用户输入部分记录?@DavisHerring在我的例子中,我只需要能够取消输入过程并返回到外部命令选择页面。上面的函数将用于在已填充的数据库中搜索,因此记录的完整性对我来说并不重要。我想知道“尝试例外”情况是否适用于我的情况,但不知道引发自定义例外的具体细节,谢谢。哦,我还没有看到你的答案,我发布了一个非常类似的答案。我觉得有义务在收回我的选票的同时提高你的选票…@gboffi非常荣幸!非常感谢。