Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有更好的方法来检查一系列输入是否符合特定的停止条件?_Python_Python 3.x_User Input_Exit_Stop Words - Fatal编程技术网

Python 是否有更好的方法来检查一系列输入是否符合特定的停止条件?

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

(Python 3.7)

我有一个类似于下面的程序。我只是想找出是否有更好的方法来检查任何用户输入是否匹配“结束”条件,我确实需要分别保存每个输入

为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非常荣幸!非常感谢。