Python:初始函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
函数的定义:
#函数在定义阶段,只检测语法,不执行代码.
def 函数名(参数1参数2,...):
'''注释信息'''
函数体
return 返回值
定义函数的三种形式:
无参: #函数无需外部传入参数
有参: #函数体的代码,需要外部传入值的时候才使用有参函数
空函数: #结构占位
函数的调用:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
函数名() #*****函数的调用,必须要准寻先定义后调用的原则
函数调用的三种形式:
def foo():
print(1)
return 123
直接通过函数名调用:
foo()
赋值给其他变量,间接调用
res=foo()
print(res)
利用函数返回值进行调用
res=foo()*10
print(res)
函数的返回值return:
调用函数的过程中,一旦执行到return,就终止函数。并且把return后的内容当作本次调用的返回值返回
函数体内可以有多个return,但只能执行一个次
返回的值,可以是任意类型,可以用逗号分隔,以元祖的形式返回多个值
可以不写return,默认返回None
函数的参数:
形参:函数定义的时候指定的参数
实参:在函数调用阶段使用的参数
固定形参:
默认参数:在定义阶段,已经为形参赋值了,在调用阶段可以不传值
注意的个问题:
#1.默认参数的值,只在定义时赋值一次
#2.默认参数的值,应该是不可变类型
#3.默认参数,都必须写在非默认参数的右边,非固定参数的左边
def foo(y=10)
print(y)
foo()
位置形参: #位置参数是在定义阶段的解释.
def foo(x,y,z)
print(x,y,z)
foo(1,2,3) #位置形参的默认调用方式,也叫必要实参
foo(y=2,z=3,x=1) #位置形参在调用阶段,可以叫做关键实参
非固定形参:
*args: #接收形参中没有定义的任意个数的位置参数,并将其保存在元组当中
**kwargs: #接收形参中没有定义的任意个数的关键字实参,并将其保存在字典当中
形参的顺序
位置参数 *args, 默认参数,**kwargs
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func3(*args, **kwargs):
print(args)
print(kwargs)
func3(1, 2, 3, 'alex', c=6, name='wusir', age='21')
(1, 2, 3, 'alex')
{'c': 6, 'name': 'wusir', 'age': '21'}
def func3(*args, **kwargs): #函数的定义的时候 * 代表聚合。
print(args)
print(kwargs)
func3(*[1, 2, 3],*(22, 33)) #函数的执行的时候 * 代表打散。
(1, 2, 3, 22, 33)
{}
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func3(*args, **kwargs): #函数的定义的时候 * 代表聚合。
print(args)
print(kwargs)
func3(**{'name':"alex"},**{'age':23}) #函数的执行的时候 * 代表打散。
()
{'name': 'alex', 'age': 23}