所以我得到一段代碼讓我頭疼。如何僅當if語句爲真時才返回值?
def Handy():
print "\nMöchten Sie ein neues Handy?"
print "\n1 - Ja\n2 - Nein"
handy = raw_input(">>> ")
if handy == "2":
print "\nSie möchten kein neues Handy"
elif handy == "1":
wunschhandy = raw_input("\nBitte geben Sie den Namen des Handys ein: ")
else:
Handy()
return handy, wunschhandy
如果我選擇選項"1"
一切都很好。但如果我去"2"
它給了我這個錯誤:"UnboundLocalError: local variable 'wunschhandy' referenced before assignment"
我知道它爲什麼發生,或者至少我想我知道爲什麼。這是因爲var wunschhandy
未被刪除,因爲我使用了選項"2"
。
那麼,如何解決這個問題?有沒有辦法只返回一個值,如果它已經被賦予了右邊的選擇?
你真的想返回或者字符串「2」或含2元組「1」還有其他什麼?調用者使用返回值做什麼? – geoffspear 2013-03-26 17:23:45
與您的問題並不完全相關,但是當您在'else'塊中調用'Handy()'時,您不會對結果做任何事情。你可能想'返回Handy()'。 (另外,如果用戶在連續輸入500次時輸入了錯誤的輸入,則通過調用自身來重複該函數會導致崩潰,但這不太可能是一個實際問題。) – Kevin 2013-03-26 17:24:57
不,我不想返回該函數。我只是想運行它。 – Krytos 2013-03-26 17:34:32