第六节 Python的函数用法,包括函数参数、函数返回值和函数的嵌套
目录
Day06新手小白学python
前言
一、函数基础
二、函数参数
三、函数返回值
四、函数嵌套调用
五、练习
总结
本文介绍了 Python的函数用法,包括函数参数、函数返回值和函数的嵌套
函数:具有独立功能的代码块。有某一功能代码块出现多次,为提高效率把具有独立功能的代码块组织为一个小模块。在调用前必须先定义。
函数的定义:
def 函数名():
代码块
函数调用:
函数名加()
# 函数的定义
def printInfo():
'''
这个函数是用来打印个人信息的 # 多行注释 表明函数作用
:return:
'''
# 函数代码块
print("小张的身高是%d"%180)
print("小张的体重是%d" %150)
print("小张的爱好是%s" %"唱歌")
print("小张的专业是%s" %"自动化")
pass
# 函数的调用
printInfo()
printInfo() # 按住Ctrl鼠标放在对应函数位置会显示函数信息
printInfo()
printInfo() # 多次调用
def 函数名(参数列表): #可以有0-n个参数
代码块
参数的分类:必选参数、默认参数[缺省参数]、可变参数、关键字参数
参数:函数为了得到实现功能所需要的数据而设立参数,为了得到外部数据。
# 1 必选参数
def sum(a,b): # a,b在此为形式参数,形参只是意义上的参数,在定义时是不占用内存地址的
sum=a+b
print(sum)
pass
# 函数调用: a,b是必选参数,是必须要赋值的
# sum(40,39) # 40,39在此为实际参数,实参,是实际占用内存地址的
# sum(10,67)
# 2 默认参数[缺省参数] 始终存在于参数列表中的尾部 如b=20后面不能跟着必选参数
def sum1(a=30,b=20):
print('默认参数的使用=%d'%(a+b))
pass
# 默认参数调用
sum1() # 在调用时若未赋值,就会用定义函数时给定的默认值
sum1(10) # 此时a=10,b仍在等于20
sum1(10,50) # 此时a=10,b=50
# 3 可变参数[当参数的个数不确定时使用,比较灵活]
def getComputer(*args): # *args表示可变长参数 接收元组类型数据
'''
计算累加和
:param args: 可变长的参数类型
:return:
'''
# print(args)
result=0
for item in args:
result+=item
pass
print('result=%d'%result)
pass
getComputer(1) # 输出为:result=1
getComputer(1,2) # 输出为:result=3
getComputer(1,2,3) # 输出为:result=6 元组类型,可变长
# 4 关键字可变参数
# **来定义
# 在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyFunC(**kwargs):
print(kwargs)
pass
# 调用
keyFunC(1,2,3) # 会报错,不可以传递
dictA={'name':'Leo','age':20}
keyFunC(**dictA)
keyFunC(name='Peter',age=25) # 直接以键值对的形式传进去
keyFunC() # 可以不传入数据,因为他接受的是可变参数
# 5 组合使用
def complexFunc(*args,**kwargs):
print(args) # 输出结果为元组类型()
print(kwargs) # 输出结果为字典类型{}
pass
complexFunc(1,2,3,4) # 输出结果:(1, 2, 3, 4) {}
complexFunc(1,2,3,4,name='Peter',age=25) # 输出结果:(1, 2, 3, 4) {'name': 'Peter', 'age': 25}
complexFunc(age=25) # 输出结果:() {'age': 25}
def TestMup(**kwargs,*args):# 不符合要求的,会报错
'''
可选参数必须放到关键字可选参数之前
可选参数:接收的数据是一个元组类型
关键字参数:接收的数据是一个字典类型
:param kwargs:
:param args:
:return:
'''
pass
函数执行完以后会返回一个对象,如果在函数的内部有return 就可以返回实际的值,否则返回空;可以返回任意类型,返回值类型应该给取决于return后面的类型;用途:给调用方返回数据;在一个函数体内可以出现多个return值,但是肯定只能返回一个return;如果在一个函数体内执行了return,意味着函数执行完成退出了,return后面的代码语句将不会执行
def Sum(a,b):
sum=a+b
return sum #将计算结果返回,返回至调用它的地方
pass
print('函数的返回值%d'%(Sum(10,20)))
def calComputer(num):
li=[]
result=0
i=1
while i<=num:
result+=i
i+=1
pass
li.append(result)
return li
#调用函数
value=calComputer(10)
print(type(value)) # 此时返回的类型是列表类型
print(value) # [55]
def returnTuple():
'''
返回元组类型数据
:return:
'''
# return 1,2,3 # 此时返回元组
return {"name":'aaa'} # 此时返回字典
pass
A=returnTuple()
print(type(A))
def fun1():
print("--------执行1---------")
pass
def fun2():
print("--------执行2---------")
# 调用第一个函数
fun1()
pass
fun2() # 调用函数2
# 输出结果为:
# --------执行2---------
# --------执行1---------
函数的分类:根据函有参数无返回值的、数的返回值和函数的参数分为:有参数无返回值的、有参数有返回值的、无参数有返回值的。
1、写函数:接收n个数字,求这些参数数字的和
def sumFunc(*args): # 可变长参数传入
# 处理接收的数据
sum1 = 0
for item in args: # 采用for循环时,in后面的数据应该是一个容器、一个范围,而不是一个数字,若为数字则要变成range(10)
sum1+=item # 字符串、列表、元组类型的数据可以直接利用for循环遍历打印
pass
return sum1
pass
rs=sumFunc(1,2,3,4,5,56)
print('rs={}'.format(rs)) # .format() 格式化输出
2、写函数:找出传入列表或元组的奇数位对应的元素,并返回一个新的列表
def processFunc(con): # 形参也可以接收列表或元组或字典类型
'''
处理列表信息,可以接收元组和列表数据
:param con: 接收的是元组或列表
:return: 返回的是列表
'''
listNew=[]
index=1
for i in con:
if index%2==1:
listNew.append(i)
pass
index+=1
pass
return listNew
pass
# rs=processFunc([1,2,4,5,6,8,])
# print(rs)
rs=processFunc(tuple(range(10,30)))
print(rs)
3、写函数:检查传入字典的每一个value的长度,若大于2,则仅保留前两个长度的内容,并将新的内容返回给调用者。PS:字典中的value只能是字符串或列表
def dicFunc(dicParms): #或者也可以写 **kwargs
'''
处理字典类型的数据
:param dicParms: 字典
:return:
'''
result={} # 空字典
for key,value in dicParms.items():
if len(value)>2:
result[key]=value[:2] #向字典去添加数据
pass
else:
result[key]=value
pass
pass
return result
pass
dictObj={'name':'小王哥','age':'20','pro':'自动化','成绩':[99,35,23]}
print(dicFunc(dictObj))
本文仅仅简单介绍了Python的函数用法,包括函数参数、函数返回值和函数的嵌套