L4-20220622
一 函数基础
1.函数是代码块——一系列Python语句的组合,可以在程序中运行一次或者多次
2.函数定义
def 函数名():
函数体[一系列的python语句,表示独立的功能]
3.函数的调用:本质上就是去执行函数定义里面的代码块,在调用函数之前 必须先定义
小实验
#作用 用于封装一些重复模块,精简代码
def printspell(括号里是参数列表):
'''调用提示语言'''
print('hi')
print('hi')
print('hi')
print('hi')
print('hi')
print('hi')
pass
#调用之前创建的
printspell()
#小练习
def printspell(name,height,weight,hobby,voc): #记得加冒号!!!!
#函数代码块,
print('%s的身高是%f'%(name,height))
print('%s的体重是%f'%(name,weight))
print('%s的爱好是%s'%(name,hobby))
print('%s的职业是%s'%(name,voc))
pass
#调用参数
printspell('小明',165,50,'打游戏','魔法师') #使用了之前创建的printspell函数
二 函数参数(难点)
参数的分类:
必选参数、默认参数[缺省参数]、可选参数、关键字参数
参数:其实就是函数为了实现某项特定的功能,进而为了得到实现功能所需要的数据
为了得到外部数据的
1 必选参数
def sum(a,b): #形式参数:只是意义上的一种参数,在定义的时候是不占内存地址的
sum=a+b
print(sum)
pass
函数调用 在调用的时候必选参数 是必须要赋值的
sum(20,15) #20 15 实际参数:实参,实实在在的参数,是实际占用内存地址的
sum(15) #不能这样写的,
2:默认参数【缺省参数】 始终存在于参数列表中的尾部
# def sum1(a,b=40,c=90):
# print('默认参数使用=%d'%(a+b))
# pass
# def getComputer(*args): #可变长的参数
1、*args保存多余变量,保存方式为元组。
2、**args保存带有变量名的多余变量,保存方式为字典。
3. 关键字可变参数 0-n
** 来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyFunc(**kwargs):
print(kwargs)
pass
调用
第一种方式 直接穿字典 前面要带**
keyFunc(1,2,3) 不可以传递的
dictA={"name":'Leo',"age":35}
keyFunc(**dictA)
第二种方式 用键值对传
keyFunc(name='peter',age=26,)
keyFunc()
组合的使用
def complexFunc(*args,**kwargs):
# print(args)
# print(kwargs)
# pass
# # complexFunc(1,2,3,4,name='刘德华')
# complexFunc(age=36)
>>>
(1,2,3,4)
{'name':'刘德华'}
# def TestMup(**kwargs,*args): #会报错不符合要求的
# '''
# 可选参数()必须放到关键字可选参数{}之前
# 可选参数:接受的数据是一个元组类型
# 关键字可选参数:接受的数据是一个字段类型
# :param kwargs:
# :param args:
# :return:
# '''
# pass
三 函数返回值
# 函数返回值
# 概念:函数执行完以后会返回一个对象,如果在函数的内部有return 就可以返回实际的值,否则返回None
# 类型:可以返回任意类型,返回值类型应该取决于return后面的类型
# 用途:给调用方返回数据
# 在一个函数体内可以出现多个return值:但是肯定只能返回一个return
# 如果在一个函数体内 执行了return,意味着函数就执行完成退出了,return后面的代码语句将不会执行
def Sum(a,b):
sum=a+b
return sum#将计算的结果返回
pass
# rs=Sum(10,30) #将返回值赋给其他的变量
# print(rs) #函数的返回值返回到调用的地方
def calComputer(num):
li=[ ] #列表
result=0
i=1
while i<=num:
result+=i
i+=1
pass
li.append(result)
return li
pass
>>>
[55]
# 调用函数
# value=calComputer(10)
# print(type(value)) #value 类型
# print(value)
def returnTuple():
'''
返回元组类型的数据
:return:
'''
# return 1,2,3
return {"name":"测试"}
pass
A=returnTuple()
print(type(A))
四 函数嵌套调用
# 函数嵌套
def fun1():
print("--------------fun1 start-------------------")
print("--------------执行代码省略-------------------")
print("--------------fun1 end-------------------")
pass
def fun2():
print("--------------fun2 start-------------------")
# 调用第一个函数
fun1()
print("--------------fun2 end-------------------")
pass
fun2() #调用函数2
# 函数的分类:根据函数的返回值和函数的参数
# 有参数无返回值的
# 有参数又返回值的
# 无参数又返回值的
# 无参数无返回值的
作业
#作业1
#接受N个数字并求参数和
def sumfunction(*args):
result=0
for a in args:
result+=a
return result
apply=sumfunction(1,2,3,4)
print('apply1={0}'.format(apply)) #输出方式一format 格式化输出
apply2=sumfunction(5,6,7,8)
print('apply2=%d'%apply2)
>>
apply1=10
apply2=26
# #作业2 接受传入列表或元组的奇数再返回奇数位的新的列表
def returnodd(li1):
li2=[]
index=1
for item in li1:
if index%2==1: #等于==
li2.append(item)
index+=1
return li2
rs=returnodd([3,5,68,3567,123546])#是个函数得加括号
print(rs)
def dictFunc(dicParms): #**kwargs
'''
处理字典类型的数据
:param dicParms: 字典
:return:
'''
result={} #空字典
for key,value in dicParms.items(): #key-value
if len(value)>2:
result[key]=value[:2] #像字典去添加数据
pass
else:
result[key]=value
pass
pass
return result
pass
# 函数调用
dictObj={'name':'夏雨','hobby':['唱歌','跳舞','运动','编程'],'pro':'中国艺术'}
# print(dictFunc(dictObj))
其他