函数
基本规则
函数的用法: 函数名() 函数的作用:对特定的一些功能进行封装,提高代码的重用率,进而提升开发的效率 函数的定义: 格式: def 函数名(): # 函数体 函数名的命名规范: 可以由数字,字母下划线组成,并且不能用数字开头 不能使用python中的关键字 函数命名的风格: 单词之间下划线隔开(python中函数命名更推荐这种风格) 大驼峰 小驼峰 函数执行之后,结果有没有数据是根据函数的返回值来决定的 函数的返回值:return
详细使用规则:https://www.runoob.com/python3/python3-function.html
语法
#定义一个函数
def hello() :
print("Hello World!")
hello() #函数调用直接使用 函数名.()
# 自定义一个打印三角形的函数
def func():
for i in range(1, 6):
# print(i)
# 内层循环,根据行数打印该列的数据,第1行,打印1,第二行,打印1,2 第三行,打印1,2,3,...)
for j in range(1, i + 1):
print('{} '.format(j), end='')
print('')
func()
结果:
函数的返回值:
return的作用:结束函数的运行
只要函数中执行到return,就直接返回内容,跳出函数体
#函数的返回值是由return来决定的,return后面写什么,函数的返回值就是什么。
def func():
print('python666')
# return "python24期666"
return [666, 999, 555]
# print("99999999999999999999")
res = func()
print(res)
#函数中没有return:函数的返回值默认位 None
def func():
print('python666')
res =func()
print(res)
#return 后面没有任何内容,返回值也是None
def func():
print('python666')
return #返回值也是None
res =func()
print(res)
#补充:return函数要返回多个数据:再return后面 每个数据之间用逗号隔开,调用函数之后接收到的是个元组形式的数据
结果:
函数的参数
#形参和实参:
#定义的参数称为:形参
#调用实际的传递的为:实参
# 可写函数说明
def printme(str): #str为形参
"打印任何传入的字符串"
print(str)
return
# 调用 printme 函数,不加参数会报错
printme(1) #调用的参数为实参
#printme() #不加参数会报错
结果:
#调用函数的时候,参数传递的两种方式
#位置参数:通过位置传递参数(按顺序传递,第一个实参,传个第一形参。。。。)
#关键字传参:通过参数名指定传给某个参数(传参的时候,不要注意参数的位置关系)
def number_add(a, b, d):
"""功能:完成两个数相加,返回相加之后的结果"""
print(a)
print(b)
print(d)
c = a + b
return c
# 位置传参
res1 = number_add(99,1,2)
print(res1) #打印出 对应a,b,d的还如参数,并打印return返回的c的值
print("*"*10)
# 关键字传参
res2 = number_add(d=999,b=99, a=88)
print(res2) #打印出 对应a,b,d的还如参数,并打印return返回的c的值
结果:
参数定义的三种形式:
#必需参数(必备参数):直接写个参数名
# 定义了几个,就要传几个,不能多也不少。
def number_add(a, b, d):
"""功能:完成两个数相加,返回相加之后的结果"""
print(a)
print(b)
print(d)
c = a + b
return c
res = number_add(1,2,3)#必需参数
print(res)
#默认参数(缺省参数):定义的时候给参数设置一个默认值
# 定义的默认参数,调用时可以传值,也可以不传(不传使用默认值,传了就使用传递的=值)
def func(a, b, c=99):#c为默认参数
print(a)
print(b)
print(c)
return c
func(11, 33)
#不定长参数(动态参数,可变参数):
# *args:定义参数的时候参数名前面加一个*(通常定义为*args),可以接收0个或多个位置传参,
# 保存位一个元组。
# **kwargs: 定义参数的时候参数名前面加一个**(通常定义为**kwargs),
# 可以接收0个或多个关键字传参,保存为一个字典。
def func(*args, **kwargs):
print(type(args),args)#可以接收0个或多个位置传参,保存位一个元组。
print(type(kwargs),kwargs)#可以接收0个或多个关键字传参,保存为一个字典。
func(1,2,3) #调用函数按位置传,**kwarges为空字典
print("*"*10)
func(a=11, b=22, c=33,d=44) #调用函数按关键字传,*args为空元组
结果: