我試圖檢查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