为了账号安全,请及时绑定邮箱和手机立即绑定

如何在列表中调用函数、捕获异常并在必要时重复函数?

如何在列表中调用函数、捕获异常并在必要时重复函数?

天涯尽头无女友 2021-12-17 15:50:32
我试图让用户输入一些问题,这些问题都具有相同的标准(要求用户从 1 到 10 打分)。我将每个问题都作为一个函数,并使用 for 循环按照它们在列表中的位置顺序调用它们。在 for 循环中,我有一个 while 循环检查它们是否有异常。但是,Python 在检查异常之前会运行所有函数。我希望它运行第一个函数,检查错误,然后运行第二个函数。我该如何实施?这是我的代码:interest_list = []function_list = [cheese(), wine(), beer(), spirits(), \              coffee(), chocolate()]for afunc in function_list :    loop_check = None    while loop_check == None :        try :            if int(afunc) <= 5 and int(afunc) >= -5 :                interest_list.append(afunc)            else :                raise RangeQuestionsError        except (ValueError, RangeQuestionsError) :            print(afunc, " is not a valid choice. Try again.", sep="")            loop_check = None
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

您在初始化不正确的列表时正在调用函数尝试以下代码


interest_list = []

function_list = [cheese, wine, beer, spirits, \

              coffee, chocolate]

for afunc in function_list :

    loop_check = None

    while loop_check == None :

        try :

            if int(afunc()) <= 5 and int(afunc()) >= -5 :

                interest_list.append(afunc)

            else :

                raise RangeQuestionsError


        except (ValueError, RangeQuestionsError) :

            print(afunc, " is not a valid choice. Try again.", sep="")

            loop_check = None


查看完整回答
反对 回复 2021-12-17
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您可以将列表作为字符串列表,然后使用eval函数对其进行评估。


请记住,您还必须定义函数。


interest_list = []

function_list = ['cheese()', 'wine()', 'beer()', 'spirits()', 'coffee()', 'chocolate()']


for func in function_list :

    afunc = eval(func)

    loop_check = None

    while loop_check == None :

        try :

            if int(afunc) <= 5 and int(afunc) >= -5 :

                interest_list.append(afunc)

            else :

        raise RangeQuestionsError

    except (ValueError, RangeQuestionsError) :

        print(afunc, " is not a valid choice. Try again.", sep="")

        loop_check = None


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信