我正在尝试让用户输入所有具有相同标准的问题(要求用户将评分从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
答案 0 :(得分:0)
您在初始化不正确的列表时正在调用函数,请尝试以下代码
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
答案 1 :(得分:0)
您可以将list作为字符串列表,然后使用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