文章目录
- 初识函数
- 函数基础
- 返回值-return
- 函数参数
- 内置函数
- 文档字符串
- 参数进阶
初识函数
函数编程 != 数学函数,也不是套公式,里面存的是逻辑以及功能。
函数:实现特定操作的一段代码
把一些经常用到的代码吧保存下来,取一个有意义的名字,以后需要用到的时候只需要调用它就可以了。
数值类型:保存一个数据
散列类型:保存多个数据
函数:保存的是多段代码
在python中我们经常用到的代码都已经内置好了,
函数的优点;
1.遇到重复的代码的时候,可以定义为函数,省事
2.让代码看起来更加清晰明了,架构性更强
3.修改拓展起来更加方便
本质:把一些有用的代码保存起来,取个名字,方便后续使用。
函数基础
函数的命名规则和变量是一样的:
1.由数字,字母,下划线组成
2.不能数字开头,不能有其他特殊符号,区分大小写
3.不能用关键字
4.见名知意
函数名如果没有特别的作用可以取名为fun
函数使用分两步:
1.定义 --> defin – >def
2.使用,调用
1.基本定义:
def 函数名():
代码内容
def fun():
print('666')
2.函数的基本使用:
函数名()
fun()
# 666
3.定义一个空函数,还没有想好写里面的内容时,可以先放个pass
def 函数名():
pass
def fun():
pass
4.有返回值的函数
def 函数名():
代码块
返回值
def add(num1,num2):
num3 = num1+num2
return num3
print(add(19, 5))
# 24
def add(num1,num2):
return num1+num2
print(add(19, 5))
# 24
5函数的调用方式:
1.直接调用的函数,直接运行里面的代码,不显示,会输出返回值
函数名():
fun()
2.输出返回值内容,把函数名()用print包裹起来,就会
先运行函数
再输出函数的返回值
print(函数名(参数))
print(fun(666))
3.用函数来赋值
1.把函数本身赋值给一个函数
函数名 = 函数
a = print #把print函数复制一份
2.把函数返回值赋值给一个变量
变量名 = 函数名() # 把返回值赋值给变量
a = add(666,555)
返回值-return
return就是一个返回值
把值返回给/赋值给函数本身
返回值一般是要结合函数参数来使用
可以把函数里的代码,理解为过程 ---- 返回值表示为结果
有的时候不需要过程,所有就直接取结果就可以了
有的函数没有返回值,如果没有定义返回值,默认返回一个None
函数 – > 做一件事情
代码块 – > 做事的过程
返回值 – > 做事的结果
返回值的细节:
1.返回的类型是不限的,int,str,list,tuple都是可以的,包括可以返回一个函数
2.返回的数量是不限的,可以一次性返回多个数据,得到的数据为元祖类型。
def 函数名():
return 返回值
函数参数
形参:没有具体的数据,只是先占个位置 ---- >定义时出现
实参:有具体的数据,在运行时取代形参 ----> 调用时出现
定义带参函数:
def 函数名(参数):
代码块
def fun(name):
print(f'我是{name}')
调用带参函数:
函数名(参数)
fun(BIgmouse)
# 我是BIgmouse
内置函数
python自带的一些功能函数
输出语句 | |
---|---|
input | 输入语句 |
type | 获取数据类型 |
len | 获取数据长度/个数 |
min | 获取最小值 |
max | 获取最大值 |
sum | 获取数据的和 |
文档字符串
基于函数写的注释,看起来和注释差不多.但是可以被调用.在写函数的时候更推荐用文档字符串
def 函数名():
''' 文档字符串内容 '''
代码块
def fun():
'''我不是普通的注释,我是文档字符串'''
print(123)
输出方式:
函数名.__doc__
fun.__doc__
input.__doc__
用法就是查看函数的使用说明:
1.函数的作用
2.函数参数的作用
3.函数返回值的作用
参数进阶
关于函数里的参数的一些进阶用法
1.必备参数: 有几个形参就要有几个实参.数量要一致
定义时:
def 函数名(参数1,参数2):
调用时:
函数名(参数1,参数2)
def add(num1,num2):
pass
add(123,232)
2.默认参数: 在声明参数的时候就提前赋好值,作为一个默认的参数
定义时:
def 函数名(参数1,参数2 = 值):
调用时:
函数名(参数1) # 由于有一个值是默认参数,传一个参数就可以了
函数名(参数1,参数2) # 这样就会覆盖原来的值
def info(name,age,sex = '男'):
print(f'大家好,我是{name}今年{age}岁,是一名{sex}孩子')
info('BIgmouse',18)
# 大家好,我是BIgmouse今年18岁,是一名男孩子
注意: 赋值的默认参数要写在右边不能写左边.
3.不定长参数1:
有的时候可能出现.不清楚这个函数会接受多少个参数的情况,这时候就用不定长.
不定长参数可以一次性接受多个数据的值.接收到的数据为元组类型
不定长参数的表现形式:
定义时:
def 函数名(*args):
调用时:
函数名(值1,值2,值3)
def info(*args):
print(args[:3])
info('666','Bigmosue',True,123)
# ('666', 'Bigmosue', True)
参数是不固定的.不一定非得叫args.但是这个属于潜规则.正常情况下都叫args
4.不定长参数2:
也是一次性接受多个数据,接受的数据类型为键值对.得到的参数变量为字典类型的数据.
不定长参数2的表现形式为:**
定义时:
def 函数名(**kwargs):
调用时:
函数名(**{键1:值1,键2:值2})
def info(**kwargs):
print(kwargs)
info(**{'name':'BIgmosue','age':18,'sex':'男'})
# {'name': 'BIgmosue', 'age': 18, 'sex': '男'}
参数名同样也不是固定的,但是最好取名为kwargs