• python 递归调用 返回值问题


    当使用递归时并有返回值时,调用自身函数时需要加上return语句如下:
    def daxiao(biao1,biao2):
        #判断两个列表的大小,根据里面的元素大小
        #如果biao1大于biao2,返回1,
        #如果biao1小于biao2,返回0
        #如果两者相等,返回3
        geshu1=len(biao1)
        geshu2=len(biao2)
     
        b1=int(biao1[0])
        b2=int(biao2[0])  #这里只能比较数值大小,不能通过字符串直接比较大小
        print(biao1)
        print(biao2)
        print(b1,b2,'d')
        if b1>b2 :
            print(b1,b2)
            return 1
        elif b1<b2 : 
            return 0
        else:
            if(geshu1==geshu2==1):
                print('same name')
                return 3
            elif(geshu1==1 and geshu2>1):
                return 0
            elif(geshu1>1 and geshu2==1):
                return 1
            else: 
               # a=daxiao(biao1[-geshu1+1:],biao2[1-geshu2:])
               # return a
       #上面两句和这一句是等价的
               return daxiao(biao1[-geshu1+1:],biao2[1-geshu2:])
               
    这里的return必须要加上,不然返回值就是none,
    因为调用函数时,是向里传输数据,不加return时,就没法往回传输数据。方法里的return只是跳出被调用的那一层函数,当调到最外层时,语句是在调用的函数那里,运行下去没有return就返回None。
    所以必须在调用函数后加个return.要么像绿色的那样加两句,要么像红色的直接返回就好。python 递归调用 返回值问题 - 眺望下一站 - 生活荒地

     https://www.cnblogs.com/yechenkai/p/7143475.html

  • 相关阅读:
    使用 Eclipse 平台共享代码
    给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
    学习
    eclipse优化
    约瑟夫环
    propedit插件
    OData 11 入门:实现一个简单的OData服务
    OData 14 OData语法(上)
    CLR via C# 读书笔记 54 在使用非托管资源情况下的GC
    面试:等车时间
  • 原文地址:https://www.cnblogs.com/beforeluck-shang/p/8370815.html
Copyright © 2020-2023  润新知