首页 > 解决方案 > 如何阅读此功能

问题描述

def cat(xx):
    if (xx<1):
        return 5
    if (xx<2):
        return 2
    if(xx<3):
        return 4
    if(xx<4):
        return 7 
    if(xx<5):
        return 8
    if(xx<6):
        return 6
    if(xx<7):
        return 1
    if(xx<8):
        return 9
    if (xx<9):
        return 3
    else:
        return cat(xx-9)
print(cat(38))

python给我的答案是4。我不知道为什么它给了我这个数字。我知道有多个 if 语句而不是 elif 但我不知道这是如何导致这个答案的

标签: pythonpython-3.x

解决方案


的堆栈调用cat(38)将是:

print(cat(38))
   return(cat(38-9))
       return(cat(29))
           return(cat(20))
               return(cat(11))
                   return(cat(2)) 
                       <-- will return 4 since `xx<3` will evaluate to true

推荐阅读