✅作者简介:大家好我是姐姐划船吗?让我们一起共同进步吧!
个人主页:姐姐划船吗?
系列专栏:学会python,逆天改命
如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦
格言:静坐要辨己过,闲谈莫论人非
学习目标:
✏️ 了解 函数的定义及语法
✏️ 了解函数的四种类型
✏️ 了解函数的参数
✏️ 了解函数的返回值
目录
1.函数介绍及定义
1.1函数的优点
1.2定义函数
1.3传参函数
2.函数的类型
2.1无参数,无返回值类型
2.2无参数,有返回值类型
2.3有参数,无返回值类型
2.4有参数,有返回值函数
2.5函数小总结:
2.6给函数添加文档说明名
3.函数的参数及返回值
3.1函数的参数
3.2定义有参数类型的函数
3.3函数中的缺省值
3.3.1 不定长参数
3.4返回值介绍
3.4.1 带有参数的返回值
3.4.2 带有多个参数的返回值
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
格式:
def 函数名(): --tab-- 代码 |
调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它。
调用函数很简单,通过 函数名() 即可完成调用
举例
-使用函数打印自己的信息 要求:定义一个函数,能够输出自己的姓名和年龄,并且调用这个函数让它执行 提示:使用def定义函数,编写完函数之后,通过 函数名() 进行调用。函数命名要见名知意 |
def information():
name=input("请输入你的姓名")
age=input("请输入你的年龄")
print(name,age)
information()
格式:
def 函数名(参数1,参数2,……): --tab-- 代码 |
传参函数的调用:
函数名(参数1,参数2,……)
举例:
让用户输入两个数,让他们相加,并返回结果 |
def addNum(a,b): #a和b两个参数叫做形式参数
print(a)
print(b)
#print("a+b=%d"%(a+b))
c = a+b
return c
result = addNum(100,200) #100和200为实际参数
print("result:%s"%result)
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种:
无参数,无返回值
无参数,有返回值
有参数,无返回值
有参数,有返回值
def 函数名(): pass |
#定义函数,能够打印信息
def printInfo():
print("-"*20)
print(" 人生苦短,我用Python ")
print("-"*20)
print_info()
应用场景:此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数
def 函数名(): return xxx |
#获取温度
def getTemp():
return 24
result = getTemp()
print("当前的温度为:%s"%result)
此类函数,能接受参数,但是不能返回结果,一般情况下,对某些变量设置数据而不需要结果的时候,可以使用此类函数
def 函数名(参数1,参数2.....): pass |
#0关灯 , 1开灯
def setOnOff(isOffOn):
if isOffOn == 0:
print("关灯")
elif isOffOn ==1:
print("开灯")
#调用函数
setOnOff(1)
setOnOff(0)
此类函数,不仅能接受参数,还可以返回某个数据,一般情况下,像处理数据并需要结果的应用,都使用此类函数
def 函数名(参数1,参数2.....): return xxx |
#计算1-?之间的累计和
def calcNum(num):
result = 0
i=1
while i<=num:
result+=i
i+=1
return result
num = int(input("请输入一个数:"))
result = calcNum(num)
print("1-%d的累计和为:%d"%(num,result))
定义函数时,是根据实际的功能需求来设计的,所以不同开发人员编写的函数类型各不相同。
格式:
def 函数名(): “文档说明” 代码 |
调用:
print(help(函数名))
def add(a,b): "用来完成对2个数求和" print("%d"%(a+b)) print(help(add)) |
#生成工作中的文档说明
def initData():
"""
初始化商品价格、
日期、
分类
:return:
"""
pass
def upData():
'''
用来更新商品数据
:return:
'''
pass
def findData():
#用来搜索数据
pass
def delData():
"删除数据"
pass
def createData():
'''
添加创建数据
:return:
'''
pass
if __name__ == '__main__':
import test08
print(help(test08))
为了让一个函数更通用,即想让它怎么计算,就让怎么计算,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是函数的参数
格式
def 函数名(参数1,参数2,……): 代码 |
传参函数的调用
函数名(参数1,参数2,……)
举例
def add(a,b,c): #a,b 称为形参 "用来完成对2个数求和" print("%d"%(a+b+c)) num1 = int(input("请输入第一个数:")) num2 = int(input("请输入第二个数:")) num3 = int(input("请输入第三个数:")) add(num1,num2,num3) #实参 |
def add2Num(a,b):
print(a,b)
add2Num(1,2)
add2Num(b=1,a=2)
add2Num(1,b=3)
#add2Num(a=1,3) #语法错误不能使用
小总结
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
注意:带有默认值的参数一定要位于参数列表的最后面
#定义函数 ,age=18 为缺省参数 def printInfo(name,age=18): print("-"*20) print(name) print(age) printInfo("张三") printInfo("李四",35) printInfo(age = 28,name = "李四") #命名参数传参方式 |
def test(a,b,c=30,d=40):
print("-"*20)
print(a)
print(b)
print(c)
print(d)
test(10,20)
test(10,20,33)
test(10,20,33,44)
A=100
B=1000
test(b=A,a=B)
有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名
基本语法如下:
def functionname([formal_args,] *args, **kwargs): " 函数 _ 文档字符串 " function_suite return [expression] |
#不定长参数,*args 以元组格式存储数据(有*就变成不定长参数) #让很多数相加 def sum2Num2(a,b,*args): print("="*30) print(a) print(b) print(args) result = a+b for num in args: result +=num print("ta们的和是:%d"%result) sum2Num2(11,22,33,44,55,66) sum2Num2(11,22,33) sum2Num2(11,22) #sum2Num2(11) #错误,至少要传递没有传递的形参 |
def test(a,b,c=30,*args,**kwargs):
print("="*30)
print(a)
print(b)
print(args)
print(kwargs)
A=(40,50)
B={"name":"小鹏","age":39}
test(10,20,30,*A,**B) #拆包
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果。
想要在函数中把结果返回给调用者,需要在函数中使用return
def test(a,b): result =a+b return result #result可以改成一句话 result=test(10,20) print(result) |
第一种方案:把多个值封装到列表中 d = [a,b,c] return d |
第一种方案的另外一种写法 return [a,b,c] |
第二种方案:封装到元组中 return (a,b,c) |
第二种的另一种写法,默认就是元组 return a,b,c |
def test():
a = 10
b = 20
c = 30
result = test()
print(result)
print(type(result))
第三种
a,b,c = test()
#a,b,c = (10,20,30)
print(a)
print(b)
print(c)
举例
#应用场景,计算两个数的商 和 余数
def divid(a,b):
shang = a // b
yushu = a % b
return shang,yushu
sh,yu = divid(5,2)
print("他们的商是:%d\n余数是:%d"%(sh,yu))
喜欢的请来个三连支持一下吧,谢谢谢谢!!!
您的支持是我最大的动力!!!