Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 3中的函数中重复函数_Python_Python 3.x_Function - Fatal编程技术网

在Python 3中的函数中重复函数

在Python 3中的函数中重复函数,python,python-3.x,function,Python,Python 3.x,Function,我的问题是,我正在用Python 3编写一个程序,试图想出一种从函数中重复函数的方法,但在StackOverflow上,我发现我可以用else语句来实现这一点: 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')

我的问题是,我正在用Python 3编写一个程序,试图想出一种从函数中重复函数的方法,但在StackOverflow上,我发现我可以用else语句来实现这一点:

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 

但我只是不明白,考虑到完整函数尚未定义,如何从函数内部回调函数?如果可能的话,我感谢你的帮助

该函数已定义。你就在这里定义它。假设实际代码中的缩进是正确的,那么您的代码应该可以正常工作。您应该使用elif var=='Nissian':而不是if var=='Nissian'


在函数中重复函数称为递归。网上有很多关于它的信息。

一些有用的阅读材料:或者有一件事我不明白,调用函数@Tigerhawkt3后,return关键字的意义。你不需要在函数结束时返回。Python会自动完成这项工作。递归算法的关键是结束条件,它告诉函数停止循环。是a。好的,我想我现在明白了,如果满足if条件,它将正常运行,如果满足ELSE条件,它将运行PRINT语句,然后重复程序函数,然后再次测试if语句,因为程序中的顶层代码块已经定义,所以它可以从程序中运行程序,对吗?对于原始问题@Tigerhawkt3中的缩进错误,我感到抱歉。整个问题已经定义好了。递归调用不是第一次被调用——它必须首先从外部调用。在那之后,是的,它会一次又一次地调用自己,直到满足结束条件,然后它就结束了。