函数

函数的4中基本类型
1无参数,无返回值,一般用于提示信息打印
2无参数,有返回值,多在数据采集中
3有参数,无返回值,多在设置某些不需要返回值的参数设置
4有参数,有返回值。一般是计算型的,需要参数,最终也要返回结果。

局部变量和全局变量:

pro='计算机信息管理'#全局变量
name='吴老师'#当全局变量和局部变量重复时,取就近原则,局部变量优先
def printInfo():
    name ='Peter'#不能在其它函数中使用,因此属于局部变量:就是在函数内部定义的变量
    print('{},{}'.format(name,pro))
printInfo()
#不同的函数可以定义相同的局部变量,但是各自用各自的,不会产生影响
#局部变量的作用:临时存储函数的值
#全局变量:作用域的范围不同
def changeGloble():
    '''修改全局变量
'''
    global pro   #关键字 globe 修改全局变量。
    pro='市场营销'
    pass 

 

函数赋值

a=1
def func(x):
    print('x的地址:{}'.format(id(x)))
    x=2
    print('x修改后的地址{}'.format(id(x)))
    #存储空间发生改变
    print(x)
    pass
#调用函数
print('a的地址:{}'.format(id(a)))
func(a)
print(a)
#可变类型
li=[]
def testRenc (parms):
    li.append([1,2,3,4,5])
    print(id(parms))
    pass
print(id(li))
testRenc(li)
#小结:在python中,万物皆对象,在函数调用的时候,实参传递的就是对象的引用
#参数传递是通过对象引用来完成

 

a的地址:140731487416064
x的地址:140731487416064
x修改后的地址140731487416096
2
1
1387266073096
1387266073096

  

匿名函数:使用lambda关键字创建表带式,不需要使用def创建函数。

#匿名函数
#lambda 参数1、参数2、参数3:表达式
# 使用lambda 关键字去创建函数
# 没有名字的函数
# 匿名函数冒号后面的表示式有且只有一个
# 匿名函数自带return,而这个return的结果就是表达式算法
m=lambda x,y:x+y
#通过变量去调用匿名函数
print(m(23,19))

result=lambda a,b,c:a*b*c
print(result(2,34,6))

age=15
print('可以参军'if age>18 else '继续上学')
#可以替换传统双分支的写法
funcTest=lambda x,y:x if x>y else y  #三元表达式
print(funcTest(2,12))
rs=(lambda x,y:x if x>y else y)(16,12)  #三元表达式,直接调用
print(rs)

#缺点:只能是一个单个表达式,仅能实现简单的功能

仿真结果: 

42
408
继续上学
12
16

 

递归函数: 

# 递归满足条件:
# 自己调用自己
# 必须有一个明确的结束条件
# 优点:逻辑简单,定义简单
# 缺点:容易导致栈(内存空间)溢出
# 求阶乘
# 循环方法实现
def jiecheng(n):
    result=1
    for item in range(1,n+1):
        result*=item
        pass
    return result
print('10的阶乘{}'.format(jiecheng(10)))
# 递归方法实现
def diguiJc(n):
    if n==1:
        return 1
    else:
       return n*diguiJc(n-1)
#递归调用
diguiJc(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)#如果是一个文件夹,再次递归
        else:
            print(fileItem)
            pass
        pass
    else:
        return
    pass
#调用搜索文件对象
findFile('E:\Python代码')

  

10的阶乘3628800
encodings.xml
misc.xml
modules.xml
other.xml
Python代码.iml
workspace.xml
pyvenv.cfg
activate
activate.bat
Activate.ps1
deactivate.bat
python.exe
pythonw.exe
encodings.xml
misc.xml
modules.xml
workspace.xml
程序.iml
sda.py

 

总结:
1.函数基本数据类型
共四种类型

2.局部变量和全局变量
定义
global关键字

3.匿名函数
lambda表达式
使用方法

4.递归函数

 使用方法

 特点

posted @ 2022-07-22 19:57  只愿为你  阅读(54)  评论(0)    收藏  举报