2015-04-03 42 views
0

我的問題是,我正在Python 3中編寫一個程序,試圖從函數內部重複函數的方法,當在StackOverflow上時,我發現我可以做到這一點else語句:在Python中重複函數內函數3

def program(): 
var = (input('Pick A Car: BMW Or Nissian')) 
if var == 'BMW': 
    print('You Picked BMW \n') 
if var == 'Nissian': 
    print('You Picked Nissian \n') 
    else: 
     print('That's Not An Option') 
     program() 
     return 

但我只是不明白如何從一個函數內調用回函數可能發生考慮到全功能尚未界定?如果可能的話,我很感激你的幫助

+0

一些有用的閱讀材料:[什麼是遞歸?](http://interactivepython.org/courselib/static/pythonds/Recursion/recursionsimple.html)或[用於Python遞歸的非程序員教程](http:/ /en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Recursion) – logic 2015-04-03 02:14:03

回答

0

該功能已定義。你在那裏定義它。假設您的實際代碼中的縮進是正確的,那麼您的代碼應該主要工作(您應該使用elif var == 'Nissian':而不是if var == 'Nissian')。

在函數中重複函數稱爲「遞歸」。網上有大量關於它的信息。

+0

非常感謝,我想讀一下:) – jediquest1 2015-04-03 02:22:30

+0

我不明白的一點是調用函數@ TigerhawkT3 – jediquest1 2015-04-03 06:01:53

+0

你不需要在函數結束時返回。 Python自動執行。遞歸算法的關鍵是告訴函數停止循環的結束條件。 [計算斐波納契數字](http://stackoverflow.com/questions/22111252/tail-recursion-fibonacci)是一個[經典遞歸練習](http://stackoverflow.com/questions/8965006/java-recursive-fibonacci-序列)。 – TigerhawkT3 2015-04-03 06:19:14