PYTHON学习日记(四)-- 函数2

1.全局变量和局部变量

局部变量:在函数内部定义的变量【作用域仅仅局限在函数内部】–不同的函数,可以定义相同的局部变量,各用各的。
作用:为了临时的保存数据

当全局变量和局部变量重合时,优先使用函数内的局部变量

注:如果在函数内部对全局变量进行修改,要用global关键字对变量进行声明(否则修改无效,相当于定义局部变量)

name = '1'

def change():
    global name
    name = '2'
    pass

change()
print(name)

2.匿名函数
使用lambda关键字创建匿名函数,及没有函数名字,不用def关键字创建标准的函数

使用方法:lambda 参数1,参数2:执行代码表达式
(注:1.匿名函数冒号后面的表达式有且只有一个,注,是表达式,不是语句
2.匿名函数自带return,return结果就是函数计算后的结果
3.只能是单个表达式,不是代码块,所以只能用于满足简单函数的场景)

test = lambda x,y:x+y
print(test(1,2))
#使用匿名表达式表示if-else结构
test = lambda x,y:x if x>y else y
print(test(1,2))

test2 = (lambda x,y:x if x>y else y)(4,6)#直接调用,后面口号相当于赋值
print(test2)

3.递归函数
自己调用自己

def dg(n):
    if n == 1:
        return 1
    else:
        return n * dg(n-1)
    pass

print(dg(5))

优点:逻辑简单,定义简单
缺点:容易导致栈溢出,内存资源紧张甚至泄露

#使用递归读取文件
import os #引入文件操作模块
def findFile(file_Path):
    listRs = os.listdir(file_Path)#获得该路径下的所有文件夹
    for fileItem in listRs:
        full_path = os.path.join(file_Path,fileItem)#拼接成完整路径
        if os.path.isdir(full_path):#判断是否是文件夹
            findFile(full_path)#如果是一个文件夹,再次递归
            pass
        else:
            print(fileItem)#打印完整文件路径
            pass
        pass
    else:
        return
    pass

findFile('D:\\openCV\\opencv\\build')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值