• 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

  • 相关阅读:
    记一次博客被日的分析过程
    省钱版----查找 IoT 设备TTL线序__未完待续
    于bugku中游荡意外得到关于CBC翻转攻击思路
    清除浮动技巧总结
    程序猿的幸福
    Memcachedclientutils类
    leetcode 2 Add Two Numbers
    arduino小车入门教学——第三天(arduino基础)
    SAP MM模块 经常使用函数
    Java代码格式
  • 原文地址:https://www.cnblogs.com/beforeluck-shang/p/8370815.html
Copyright © 2020-2023  润新知