我试图检查raw_input
是使用下面的码连续3 1选项的选择:从包含函数中返回变量如果ELIF else语句
def selectDiff():
upperbound = 0
difficulty = ['easy', 'medium', 'hard']
diff = raw_input(' or '.join(difficulty)).lower()
if diff in difficulty:
if diff == 'easy':
upperbound = 20
elif diff == 'medium':
upperbound = 25
elif diff == 'hard':
upperbound = 30
else:
print "Please select easy, medium or hard\n"
selectDiff()
return upperbound
如果用户从难度列表输入一个值['easy','medium','hard']
该函数按我的意愿工作,但如果用户首先输入列表中未包含的值,那么当它们最终输入在列表中找到的值时,变量upperbound
将返回为0.我试着移动return语句,但结果是相同的,或者由于在变量被拒绝之前引用变量而出现错误。
是否有可能改变我的方法来产生所需的行为,还是应该使用另一种方法?
更好更简单的答案存在 - 就像使用while或直接递归 - 这只是普通的复杂,没有明显的原因。 – 2014-09-26 22:42:56
@ TonySuffolk66:这回答了OP的问题,并表明他有可能做他想做的事情,也表明这并不容易,这表明他不应该这样做。只要给他不同的代码,并说“这样做”并不能帮助他学习,而说谎并说“这是不可能的”,如果它帮助更少。 – abarnert 2014-09-26 23:01:43