【问题标题】:Repeating A Function From Within A Function In Python 3在 Python 3 中的函数内重复函数
【发布时间】:2015-04-03 02:09:08
【问题描述】:

我的问题是,我正在用 Python 3 编写一个程序,试图想办法从一个函数中重复一个函数,当在 * 上我发现我可以用 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 

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

【问题讨论】:

标签: python python-3.x function


【解决方案1】:

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

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

【讨论】:

  • 有一点我不明白的是调用函数@TigerhawkT3后return关键字的意义
  • 您不需要在函数末尾使用return。 Python 会自动执行此操作。递归算法的关键是一个结束条件,它告诉函数停止循环。 Calculating Fibonacci numbersclassic recursion exercise
  • 好的,我想我现在明白了,所以如果满足IF条件它将正常运行,如果满足ELSE条件它将运行PRINT语句然后重复program()函数到那时再次测试 IF 语句,因为 program() 中的顶部代码块已经定义,因此它可以从 program() 中运行 program(),对吗? (并对原始问题中的缩进错误感到抱歉)@TigerhawkT3
  • 整个事情已经定义好了。该递归调用不是第一次被调用 - 它必须首先从外部调用。之后,是的,它会不断调用自己,直到满足结束条件,然后结束。