函数:
参数: 在函数执行的时候给函数传递的信息
形参: 在函数声明的位置, 声明出来的变量
实参: 在函数调用的时候, 实际你给函数传递的值
函数的参数个数是没有要求的, 但是,在运行的时候, 形参和实参要匹配, 按照位置把实参赋值给形参
函数:对功能的封装
def 函数名(形参):
函数体
函数名(实参)
函数名:命名规则和变量不一样
函数的返回值:
return, 函数执行完毕, 不会执行后面逻辑
1. 如果函数中不写return返回None
2. 只写return 返回None
3. return 返回值, 返回一个值
4. return 值1,值2,..。返回多个值,多个值需要用逗号(,)隔开,调用方接受到的是元组,
参数:
在函数执行的时候给函数传递的信息
1. 形参:
1. 位置参数
2. 默认值参数, 当调用的时候, 没有传值时, 使用默认值
3. 混合使用, 顺序: 1. 位置参数, 2. 默认值参数
4. 动态参数:
位置参数的动态参数: *args
关键字参数的动态参数: **kwargs
顺序:
位置,*args,默认值,**kwargs
def func(*args, **kwargs): 可以接受任何参数
在形参上*聚合, **聚合
在实参上*打散, **打散
2. 实参:
1. 位置参数, 按照位置给形参赋值
2. 关键字参数, 按照名称给形参赋值
3. 混合参数, 先用位置参数, 在用关键字参数
函数:对功能的封装
def function(canshu): # 定义一个函数名, 可以在函数名里传参,这里叫形参 print('你很 NB!') # 函数体,代码块 print(canshu) # 这里是通过执行函数里传的东西,传给形参,在通过形参传到这里,进行打印 function('name') # 可以进行多次调用 # 执行函数,用函数名 + (),在这个括号里也要传一个参数,叫实参 # 输出: # 你很 NB! # name
函数的返回值
def return_value(): print('小朋友') # return #: 在这里不写return或者只写return都会返回None,因为return后面要有一个值,才有效 # None返回给执行的函数名,返回这里的函数名,在赋值给前面的ret # return后面的代码就不执行了 ret = return_value() print(ret) # ret = None,打印None,上面的print里面的内容还是要打印出来 # 输出: # 小朋友 # None def return_value(gender): return gender # 单个返回值
ret= return_value('不详') print(ret) # 输出: # 不详 def return_value(happy,happy1): return happy,happy1 # 执行这个了,那么在"函数里"下面的代码就不会执行了
# 多个返回值
ret = return_value('守护','拥抱') print(ret) # 是以元组的形式打印出二个或者二个以上的返回值 # 输出: # ('守护', '拥抱')
1. 位置参数
def function(country,age): # 形参的 表示位置参数 print('我在%s,今年%s. ' % (country,age)) function('中国',18) # 实参的位置参数 # 输出: # 我在中国,今年18.
2. 默认值参数, 当调用的时候, 没有传值时, 使用默认值
def function(age=18): # 表示默认值参数 print('我今年%s岁. ' % (age)) function() # 输出: # 我今年18岁.
3. 混合使用, 顺序: 1. 位置参数, 2. 默认值参数
def function(music,name = '林俊杰'): # 位置参数,默认值参数 print('周杰伦的%s 比较好听,%s的音乐也比较好听' % (music,name)) function('音乐') # 输出: # 周杰伦的音乐 比较好听,林俊杰的音乐也比较好听
4. 关键字参数动态参数,位置动态参数
def function(country,*food,age=18,**hobby): # 位置参数 > 位置动态参数 > 默认值参数 > 关键字参数动态参数 # **hobby 可以接受关键字参数,以字典的形式打印出来 # *food 位置动态参数,可以接受多个位置参数(可以无数个),并且以元组的形式打印出来 # *food 就是接受前面剩余的位置参数 print('我在%s,今年%s,喜欢%s,还喜欢吃%s ' % (country,age,hobby,food)) function('中国','菠萝','香蕉','苹果',hobby = '打游戏') # 顺序:位置参数,关键字参数 # 输出: # 我在中国,今年18,喜欢{'hobby': '打游戏'},还喜欢吃('菠萝', '香蕉', '苹果')