4.24—010—周三

今日所学内容:函数

函数:是完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数

    -- 现实中的意义:很多问题要借助一些工具进行处理 => 可以将工具提前生产出来并命名

    => 通过名字可以找到工具 => 使用工具来解决问题

优点:

1、避免代码的冗余

2、让程序代码结构更加清晰

3、让代码具有复用性,便于维护

一、函数的四部分

函数语法的定义:通过 def 关键字来定义

1、函数名:使用该函数的依据

扫描二维码关注公众号,回复: 6003708 查看本文章

2、函数体:完成特定功能的代码块

3、参数:完成功能需要的条件信息

4、返回值:功能完成后的反馈结果

  — 函数的四部分都可以根据需求的变化而变化

二、函数的使用

使用函数时:必须先定义 后使用

1、根据需求定义函数

2、通过函数名找到函数所在的位置(内存地址)

3、函数名() 执行函数地址中存放的所有代码块

  -- 函数在定义时需要外界的参数,就要在调用

4、函数执行完成后一定有返回结果,通过 return 关键字将结果返回给外界

  -- 外界需要知道执行结果,用变量接收

  — 外界不需要知道执行结果,只执行函数(不需要接收)即可

当设定好函数后,需要使用函数时,就调用一次,如果又有相同的需求,函数可以重复调用,编码过程中函数只有一个,代码结构清晰且不冗余。

三、函数的分类

1、根据函数体分类:

  1)空函数:用 pass 来填充函数体的函数

    -- 优先明确函数名,暂不明确函数体(编程中就存在一些没有函数体的函数)

    Eg:def login(): pass   在开发初期,可以将所有功能提前列出来,用 pass 占位,后期再去填充功能体

  2)非空函数:有函数体的函数

    Eg:def fn2():   print('函数体')

2、根据函数参数分类

  1)有参函数: Eg:def add_two(n1, n2):

              print('功能体需要外界的参数')

              print(n1 + n2)

  2)无参函数:  Eg:def add():

              print('功能体不需要外界的参数')

              n1 = input('n1: ')

              n2 = input('n2: ')

              print(n1 + n2)

3、根据函数返回值分类:所有的函数都有返回值

  1)不明确返回值(无return)  def low_two(n1, n2):

                    print(n1 - n2)      # 外部不需要知道内部的执行结果

  2)明确返回值(有 return)

      def jump_two(n1, n2):

        return n1 * n2     # 外部需要知道内部的执行结果

      res = jump_two(10, 20)

      print(res)

四、函数的返回值

1、函数名():

    先拿到函数地址 => 再加载()内的执行函数体 =>最后得到函数的执行结果

返回值的功能:    1) 结束函数

          2) 将函数的内部数据返回给外部

2、应用场景

  1) 不明确 return 关键词的函数:

      循环体中没有 return, 系统在函数最末尾自动添加了 return,返回的是None

  2) 明确空 return 关键词的函数:为了结束函数而 return

    return

      def print_msg():

      while True:

        msg = input("msg: ")

        if msg == 'q':

          # break

          return  # 在特定的位置需要直接结束函数,但不需要告诉外界某个结果,用空return处理

        print(msg)

      print(msg)  # 在break下可以被执行,在return下不能被执行

    res = print_msg()

    print(res)

  3)有明确的返回值需求的函数:

      -- python中的函数本质上只能返回一个值,
      -- 值跟在return关键词后
      -- 可以通过语法上返回多个值,值之间用逗号隔开,但是本质上是返回装有多个值的元组

    一个值

      def get_num():

        num = input('num: ')

        return num

      print(get_num())

    多个值

      def get_two_num():

        n1 = input('n1: ')

        n2 = input('n2: ')

        return n1, n2

        # return (n1, n2)

        # print(get_two_num())

      num1, num2 = get_two_num() 

   python中的return支持多值返回的语法原因是python中有解压赋值 ==> print(num1, num2)

猜你喜欢

转载自www.cnblogs.com/Chinesehan/p/10760364.html