python 递归 return None

简介: python 递归 return None

从一到题目引发的关于递归的思考

def 递归函数有两个条件,但只有一个条件有返回值,造成了结果为None

关于函数的return ,我们总是以为return 就结束了,但是在递归函数中,return 只是返回给上一个函数,一直返回才到第一个函数。所以要对代买进行修改

import math
import threading
class myThread (threading.Thread):
    def __init__(self, threadID, name,num):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
def gcd(a,b):
    # *************begin************#
    if(a<b):
        p=a
        a=b
        b=p
    c=a%b
    if(c==0):
        return b
    else:
        a=b
        b=c
        return gcd(a,b)
# **************end*************#  
def main():
    a = int(input()) 
    b = int(input())
    r = gcd(a,b)
    print(r)
if __name__=='__main__':
    main()

 

目录
相关文章
|
7天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
24 2
|
1月前
|
Python
Python Tricks: Nothing to Return Here
Python Tricks: Nothing to Return Here
|
1月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
23 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
3月前
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
3月前
|
算法 数据挖掘 Python
|
3月前
|
数据采集 Java Python
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
|
3月前
|
存储 Python
【Python 3】什么时候使用yield而不是return?
本文讨论了Python中`yield`与`return`的使用场景,解释了`yield`在生成器中的应用,允许函数逐步产生值而不必一次性计算并返回整个序列,适合于节省内存的懒加载场景。
37 2
|
4月前
|
缓存 Python
Python中递归错误
【7月更文挑战第17天】
48 8
|
4月前
|
算法 Python
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
69 1
|
4月前
|
搜索推荐 Python
快速排序:Python 中的速度之王,揭秘它的递归魔法与性能极限!
【7月更文挑战第12天】快速排序**是高效排序算法,基于分治策略。它选择基准值,将数组分成小于和大于基准的两部分,递归地对两部分排序。
60 6