首页 > 解决方案 > Python中的递归函数-如果条件为假,为什么执行第7行?

问题描述

我是新手,这是我在 StackOverflow 上的第一个愚蠢问题。有人会告诉我为什么在条件为假(input = 1)时执行第 7 行吗?这是截图 非常感谢,祝你一切顺利!

print("line 1 - START OF CODE - right before function 'def decimalToBinary(num)' \n", "line 2-9 - define function 'decimalToBinary(num)'")
def decimalToBinary(num):
    print("\n Line 2 - execute the function 'decimalToBinay(num)'' \n Line 3 - right before if statement - at this line num value is:", num, ", var number is:",number,"\n")
    if num > 1:
        print("Line 4-5 - 'if statement' is true (num > 1), num value is", num, "> 1", "\n Line 6 - recall function 'decimalToBinary(num // 2)' \n")
        decimalToBinary(num // 2)
        print("Line 7 - 'if statement' end - This is num after line 6 'decimalToBinary(num // 2)'. Num is",num)
    print("Line 8 - This is num before the line 'print(num % 2)':", num)
    print("Line 9 - This is result of num % 2:", num % 2, "\n")
number = int(input("line 10 - Ask user 'Enter any decimal number:' then assign this value to var 'number' \n line 11 - call function 'decimalToBinary(number)': "))
decimalToBinary(number) #function call
print("line 12 - END OF CODE")

标签: pythonif-statementrecursion

解决方案


根据我对您问题的理解,您的假设是,如果输入为 2,那么if num > 1,当然会运行。然后它去decimalToBinary(num//2)。但是,要做到这一点,您需要将第 6 行更改为return decimalToBinary(num//2)


推荐阅读