什么是函数:函数是一系列python语句,可以在程序中运行一次或多次,一般用来完成某一具体的独立功能
为什么使用函数:代码的复用最大化和最小化冗余代码,整体代码结构清晰,可以是某些问题或者功能局部化。
程序中如何定义函数:
def 函数名(参数列表):
函数体【一系列python语句,用来完成独立的功能】
函数的调用:
本质就是执行函数定义中的代码块,但是在调用函数之前,要先定义函数
一、函数的学习
定义函数例子
def printinfo():
'''
这个函数时用来打印小张信息的
:return: #对函数进行备注
'''
# 函数代码块
print('小张的身高是%f' % 1.73)
print('小张的体重是%f' % 150)
print('小张的专业是%s' % '电气工程')
pass
函数的调用
printinfo()
进一步完善需求【输出不同人的信息】方案:通过传入参数解决
def printinfo(name,height,weight,pro):
# 函数代码块
print('%s的身高是%f' % (name,height))
print('%s的体重是%f' % (name,weight))
print('%s的专业是%s' % (name,pro))
pass
# 调用带参数的额信息
printinfo('小名',189,160,'计算机')
二、函数的参数
**参数的分类:**必须参数、缺损参数【默认参数】、可选参数、关键字参数
**参数:**其实就是为了函数实现特定的功能,进而为了得到实现功能所需要的外部数据
1. 必选参数
# 1 必选参数
def sum(a,b): # 形式参数:只是意义上的一中参数,在定义的时候是不占内存地址的
sum=a+b
print(sum)
pass
# 函数调用 在调用的时候,必选参数是必须要赋值的
sum(20,15) # 20和15为实际参数:实参 实实在在的参数,是实际占有内存地址的
#sum() #不能这样写,
2.默认参数 【缺损参数】
缺损参数始终存在于参数列表的尾部
def sum1(a=20,b=30):
print('默认参数使用=%d'%(a+b))
pass
# 默认参数调用
sum1() #结果为50
sum1(10) #在调用时如果没有赋值,就会用定义函数时给定的默认值,即a=10,b=30
3.可选参数
可选参数即不定长参数,当参数个数不确定时使用,比较灵活
def getcomputer(*args):
'''
计算累加和
:param args: 可变长的数据类型
:return:
'''
print(args)
pass
getcomputer(1,2) #得到的结果为(1, 2)
做一个累加的算法
def getcomputer(*args):
'''
计算累加和
:param args: 可变长的数据类型
:return:
'''
result=0
for item in args:
result+=item
pass
print('result=%d'%result)
pass
getcomputer(1,2,3,4)
输出结果:10
4.关键字参数
用**来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyfunc(**kwargs):
print(kwargs)
pass
# 调用
# keyfunc(1,2,3) 不可以传递的,这是元组类型
第一种调用方法
dicA={'name':'Leo','age':35}
keyfunc(**dicA)
输出结果:{‘name’: ‘Leo’, ‘age’: 35}
第二种调用方法
keyfunc(name='peter',age='25')
输出结果:{‘name’: ‘peter’, ‘age’: ‘25’}
5. 组合使用
def complexfunc(*args,**kwards)
print(args)
print(kwards)
pass
complexfunc(1,2,3,name='刘德华') #会自动识别给的是字典还是元组
输出结果:(1, 2, 3)
{‘name’: ‘刘德华’}
注意:
def Testmup(**kwards,*args): #不符合要求
'''
可选参数必须放到关键字可选参数之前
可选参数接受的是元组类型
关键字可选参数接受的是字典类型
:param kwards:
:param args:
:return:
'''
pass
三、函数的返回值
概念:函数执行完以后会返回一个对象,如果在函数内部有return就可以返回实际的值,否则返回的是一个空none
类型:可以返回任意类型,取决于return后面的类型
用途:给调用方返回数据
注意:
1.在一个函数体出现多个return值,但是肯定只能返回一个return
2.如果在一个函数体内执行一个return,意味着函数退出了,return后面的代码将不会再执行
def sum(a,b):
sum=a+b
return sum #将计算的结果返回
pass
rs=sum(10,30) #将返回值赋给其他变量
print(rs) #函数的返回值返回到调用的地方
输出结果:40
def calcomputer(num):
result=0
li=[]
i=1
while i<=num:
result+=i
i+=1
pass
li.append(result)
return li
pass
#调用函数
value=calcomputer(10)
print(type(value)) #value类型
print(value)
输出结果:
<class ‘list’>
[55]
def returntuple():
'''
返回元组类型的数据
:return:
'''
return 1,2,3 #{'name':测试}
pass
A=returntuple()
print(type(A))
print(A)
输出结果:
<class ‘tuple’>
(1, 2, 3)