函数(一)——函数基础

一、函数的定义

什么是函数

  一段相同的代码在不同的地方要反复执行,为了减少重复代码,可将这段代码封装起来,定义一个函数,以后要用到的时候每次调用这个函数就好了。函数相当于具有一定功能的工具。

例如,我们要统计一个列表中字符的个数,我们可以调用内置方法len()来实现。如果len()不能用的话,我们可以写一段代码,通过代码来实现:

name_list = ['jason', 'kevin', 'oscar', 'jerry']
print(len(name_list))
'''突然len不准用了'''
count = 0
for i in name_list:
    count += 1
print(count)
统计列表内数据值个数的代码需要在很多地方使用,那我们就需要反复输入相同的代码。为了简化这种操作,就可以定义一个函数,在需要执行相同的操作的时候就可以调用这个函数。
def my_len():     # 定义函数
    count = 0
    for i in name_list:
        count += 1
    print(count)
my_len()    # 调用函数

函数的语法结构

def 函数名(参数1,参数2,...):
    """文档描述"""
    函数体代码
    return 返回值

函数语法说明

1.def

  定义函数的关键字

2.函数名

  命名等同于变量名


3.参数

  可有可无,主要是在使用函数的时候规定要不要外界传数据进来

4.函数注释

  类似于工具说明书

5.函数体代码

  是整个函数的核心,主要取决于程序员的编写

6.return

  使用函数之后可以返回给使用者的数据,可有可无

函数与循环的对比

循环
相同的代码在相同的位置反复执行
函数
相同的代码在不同的位置反复执行
    ps:相同的代码不是真正一模一样而是可以通过传入的数据不同而做出不同的改变

 

二、函数的调用 

1.函数在定义阶段只检测语法,不执行代码

def func():

    pass

def func():
    print(123)     # 此时运行的话不执行代码

 

2.函数在调用阶段才会执行函数体代码 func()

def func():
    print(123)
func()    # 123

3.函数必须先定义后调用

4.函数定义使用关键字def函数调用使用>>>:函数名()

    如果有参数则需要在括号内按照相应的规则传递参数(后续详细讲解)

三、函数的分类

根据有无参数分类:

  • 有参函数
  • 无参函数

根据有无返回值分类:

  • 有返回值函数
  • 无返回值函数

根据定义者分类:

  • 系统自定义函数
  • 第三方函数

 我们在对一个项目只有一个大概的框架,还没有确定具体的代码怎么写的时候,可以先建立一个空函数,把框架先搭起来,等将来具体操作的时候再设定相应的函数的代码块。

函数类型举例

1.空函数

函数体代码为空 使用的pass或者...补全的
空函数主要用于项目前期的功能框架搭建

下面就是一个空函数的框架

def register():
    """注册功能"""
    pass


def login():
    """登录功能"""
    pass


def choice_course():
    """选课功能"""
    pass

 

2.无参函数

定义函数的时候括号内没有参数

def index():
    print('from index function')

 

3.有参函数

定义函数的时候括号内写参数,调用函数的时候括号传参数

def func(a):
    print(a)

 

四、函数的返回值

1.什么是返回值

调用函数之后返回给调用者的结果

2.如何获取返回值

变量名 赋值符号 函数的调用
res = func() # 先执行func函数,然后将返回值赋值给变量res

l1 = [111, 222, 333]
res = l1.pop()
print(res)    # 333

3.函数返回值的多种情况

3.1.函数体代码中没有return关键字 默认返回None

def index():
    print('from index')    # from index
res = index()
print(res)    # None

3.2.函数体代码有return 如果后面没有写任何东西还是返回None

def index():
    print('from index')    # from index
return # return后面无内容,返回None 
res = index()
print(res)

3.3.函数体代码有return 后面写什么就返回什么

def index():
    print('from index')
return 123
res = index() 
print(res) # 123

3.4.函数体代码有return并且后面有多个数据值,则自动组织成元组返回

def index():
    print('from index')    # from index
return [666,777,888,999] 
res
= index()
print(res) # (666, 777, 888, 999)

3.5.函数体代码遇到return会立刻结束

def index():
    return 123    # 遇到teturn结束
    print('from index')    # 这代码永远不会被执行
res = index()
print(res)

 

五、函数的参数

形式参数:

  在函数定义阶段括号内填写的参数,简称“形参”

实际参数:

  在函数调用阶段括号内填写的参数,简称“实参”

形参与实参的关系:

形参类似于变量名,在函数定义阶段可以随便写,最好见名知意。

def register(name,pwd):
    pass

实参类似于数据值,在函数调用阶段与形参临时绑定,函数运行结束立刻断开

register('jason',123)     # 形参name与jason绑定,形参pwd与123绑定

 

posted @ 2022-10-09 19:30  莫~慌  阅读(530)  评论(0编辑  收藏  举报