函数
函数的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.递归函数
使用方法
特点

浙公网安备 33010602011771号