在函数内部递归调用第二个函数

时间:2019-04-29 23:35:46

标签: python-3.x

我有这样的代码,其计数为-3,-2,-1。我还写了另一个倒数为3、2、1的数字。如果输入后另一个条件成立,则程序应停止。例如,输入i为负数输入-3,它给出-3,-2,-1,如果我输入像3这样的正数,则结果应该在单个组合代码中为3、2、1。

我试图将一个函数放到第一个函数的if语句中,但是由于“倒数但倒数”工作失败,出现“ NameError:未定义名称'countdown'”。

print('+=+=+=+=+=+=+=+=+=+=+=+=+ F1')
#count up
def countup(n):
        if (n >= 0):
                print('Hello')
                if n==0:
                        print('Blastoff!')
                else:
                        print(n)
                        countdown(n-1)
        else:
                print(n)
                nth = n + 1
                countup(nth)
result = int(input('Enter Number: '))
countup(result)

2 个答案:

答案 0 :(得分:0)

您是否尝试过用else替换第二个elif?并修复缩进?结果代码应为:

print('+=+=+=+=+=+=+=+=+=+=+=+=+ F1')
#count up
def countup(n):
        if (n >= 0):
                print('Hello')
                if n==0:
                        print('Blastoff!')
                elif (condition): 
                        print(n)
                        countdown(n-1)
               else:
                    print(n)
                    nth = n + 1
               countup(nth)
result = int(input('Enter Number: '))
countup(result)

答案 1 :(得分:0)

我通过执行以下代码来解决此问题:

def countup(n):
    if (n >= 0):
        print('Blastoff 1')
    else:
        print(n)
        nth = n + 1
        return countup(nth);

def zero(n):
    if (n==0):
        print('You have erntered 0 program exiting')
        exit()

def countdown(n):
   if (n <= 0):
      print('explode 2')
   else:
      print(n)
      nth = n - 1
      return (countdown(nth))

num = int(input("Enter number: "));
if (num <= 0):
    print(countup(num))
elif num == 0:
    print(zero(num))
else:
    print(countdown(num))

输出是负值还是正值,无论您融合的是什么整数