代码: #求最大公约数 def gcd(x,y): if x < y: swap = x x = y y = swap if x%y == 0: return y else: gcd(y,x%y) print(gcd(10,20)) print(gcd(20,15)) 输出结果: 10 None 如果将return y替换成print(y),是可以正确输出结果的. 查阅了网上的文章,有说是在递归的每一个分支都需要给出一个return,于是将代码改为: def gcd(x,y): if x <
python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) 递归要注意两个事项: 1.必须要有最后的默认结果,也就是最底层目录的默认结果 if n == 0 2.递归参数必须向默认结果收敛 factorial(n-1) 要用到 os 模块下的几个方法 要用到 os 模块下的几个方法 二.递归列出目
#自定义函数: import ospath="D:\\Temp_del\\a"def gci (path): """this is a statement""" parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child)
首先看一个例子,让我们lock = threading.Lock() 时(代码第33行),程序会卡死在这里 #!/usr/bin/env python import threading,time def run1(): print("grab the first part data") # 申请锁 lock.acquire() # 将全局的变量,在此声明一下 global num num += 1 # 释放锁 lock.release() return num def run2():