一、函数的基本使用

1.函数的铺垫
1.我们现在写的代码冗余性比较强,就是没用的东西太多了
2.我们现在写的代码兼容不强,我们在取元素的时候时不时的需要更改数据类型这样就很麻烦,实际上就改一下变量就好了
3.其实我们的函数就是要模仿关键字的功能实现原理
4.我们自己写的函数没有返回值(就是函数执行之后咩有返回结果)

l = [1,2,3,4,5,6,7]
print(len(l))#如果len不让你用了,你该怎么计算列表的长度
#我想的是除了len我还可以使用计数器
a = 0
for i in l :
a+=1
print(n)#使用计数器也可以实现计算长度

1.1函数简介
函数就是把你要写的代码固定成一块需要使用这个功能的时候直接调用即可,就是提前准备好你要使用的代码,方便后期使用可以直接用

2 函数的语法结构

def my_len(参数一,参数二):
      '''函数体代码注释'''
        print(123)#函数体代码
        return 'hello'   #返回值

1.def :
 是代表定义或者说申明一个函数,不能省略不然就不叫函数了
2.my_len :函数名
就相当于是变量名,不唯一可以随意起名,是遵循变量的命名规范,一定是见名知意,还有函数名后面的小括号不能省略,即使没有参数也不能省略
3.(参数一,参数二) == 这个是函数的精髓(可有可无)
    3.1什么是参数,参数就是你在使用函数前要满足的一定条件,参数可有可无,              
    不一定是非要存在的,也可以是一个空括号
4.  '''函数体代码注释''' :(可有可无)
主要写函数功能的介绍,就是说要在这里写你这个函数是干嘛的啥功能,也就等于备注的意思,就比如可以说一下你这个参数代表的啥意思
5.print(123)函数体代码:(核心)
就是吧你写的代码放进去后面要用到这个代码的时候,直接调用改函数名就可以
6.return 'hello'   #返回值:
返回值可以有可无,返回值不一定非要有
返回值的关键字是:return
。。。

3.函数的定义与调动的两个阶段

3.1定义阶段

def my_func():  # 只要有def就已经到了函数的定义阶段
      print(123)#打印出来是空的

1.函数必须先定义后调用
2.函数在定义阶段,如果有参数,调用也需要给对应的参数
3.函数在定义阶段只检测语法是否正确,不执行具体的代码功能

3.2调用阶段

 my_func()
4.函数在调用阶段会执行具体的函数体代码
5.函数的调用是通过函数名调用的

函数的的底层原理
1.申请一块能存空间,存储函数体代码
2.吧函数体代码绑定给函数名
3.通过调用函数(函数名())来执行函数体代码

4.函数的分类
4.1 内置函数
内置函数是你下载python的时候自带的代码,如图
python-函数-小白菜博客
因为系统自带这个代码的缘故所以我们使用起来直接可以调用,不需手动定义
内置函数也就是数据类型的内置方法

4.2自定义函数
自定义函数就是我们自己使用def定义的函数
1.无参函数

def my_len():#括号里没有参数的都是无参函数
       print(123)

2.有参函数

def my_len():#括号里有参数的都是有参函数
       print(123)
但是要注意在调用阶段的时候也需要填写参数

3.空函数

def my_len():
       pass #空函数就是使用pass或者用...三个点
空函数的作用就是再规划很多个功能的时候我先用函数块搭个大致框架,知道我该实现那些功能
就是当你不知道你的函数体该写啥的时候就用pass

5.函数的返回值

返回值:函数执行结束之后,返回的结果
def my_func():
print('helloword')
my_func() #可以直接调用 helloword
res  =  my_func()
    print('my_func() ')# 当函数没有返回值的时候,没有return的时候,返回的是none
    print(res)#把函数的执行结果赋值给res变量,结果就是none,没有为什么这是固定的
    1.return #当函数中只有return后面没有值的时候,返回的结果仍然是none
    2.return 123 #当return后面有值的时候,你写什么就返回什么
    3.return 123,456,789 #当return后面跟多个值的时候会组织成元组的形势返回
    4.如果你想返回多个值的时候,最后使用容器类型包一下,比如你return字典返回就是字典
    5.在函数中,只要遇到return关键字,代码立刻终止执行,一个函数最多只能有一个return,函数只要看见return直接停止运行
    6.return,只能出现在函数中,if else中绝对不能出现