函数基础

函数

  • 定义

    • 函数是一段封装了特定功能的可重复使用的代码块。
    • 通过定义函数,你可以将代码模块化,使其更易于理解、调试和维护。
  • 优点

    • 为了解决代码的重复书写问题
    • 可以将功能的实现者和使用者分开,提高开发效率
    • 增加代码的可移植性
  • 分类

    • 库函数:
      • print、input、abs 等
    • 自定义:用户自己封装的函数
  • 格式

    1
    2
    def 函数名([参数列表]):
    函数体

    [] 表示可选,参数可以没有,也可以有多个。

  • 函数名

    • 遵循标识符的命名规范(与变量名相同)
  • 函数调用

    • 函数定义以后不会执行,需要调用才执行
    • 调用:函数名 ([参数])
  • 示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 无参无返回值
    def print_hello():
    print('Hello')
    # print_hello()

    # 带参无返回值
    def print_n_hello(n):
    for i in range(n):
    print('Hello')
    # print_n_hello(5)

    # 带参有返回值
    def add(m, n):
    # 返回结果
    return m + n
    print(add(3, 5))
  • 函数参数

    • 形参:形式参数,函数定义处的参数
    • 实参:实际参数,函数调用处的参数
    • 必传参数:也叫位置参数,前面定义的函数中都是必传参数,调用时的形式必须要与定义的一致。
    • 默认参数:就是有默认值的参数,必须放到最后
    • 可变长度参数:函数调用时传递的参数比定义时的参数要多,多出来的参数后保存在 args 和 kwargs 中
    • 示例 1
      1
      2
      3
      4
      5
      6
      7
      8
      9
      def show(a, b='默认值'):
      # a就是必传参数
      print(a)
      # b就是默认参数,就是有默认值的参数,必须放在最后
      print(b)

      # show(1, 2)
      # 关键字参数,传递参数的时候指定了名字,顺序就无所谓了
      show(b=456, a=123)
    • 示例 2
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      def var_len_args(a, b, name='默认名称', *args, **kwargs):
      print(a)
      print(b)
      print(name)
      # args是一个元组,用来存放所有的多出来的位置参数
      print(args)
      # kwargs是一个字典,用来存放所有的多出来的默认参数
      print(kwargs)


      var_len_args(1, 2, 3, 4, 5, age=18)
  • * 的特殊用法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    def show(a, b):
    print(a, b)

    l = [1, 2]
    # 略显啰嗦
    # show(l[0], l[1])
    # 精简方法
    # show(*l)

    def show2(a='aa', b='bb'):
    print(a, b)
    d = {'a':'apple', 'b':'banana'}

    # show2(a=d['a'], b=d['b'])
    # 上面方式的简单书写
    show2(**d)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    tu = (1, 2, 3, 4, 5)


    def qiuji(length, args):
    ji = 1
    for i in range(length):
    ji *= args[i]
    return ji


    def calc(func, *args):
    print(args)
    return func(len(args), args)


    print(calc(qiuji, *tu))
  • 练习:

    1
    2
    1.前面所有的练习,能用函数的封装成函数
    2.封装函数:生成随机的字符串,参数:长度(默认为4),类型(默认为0)
------------- 本文结束 感谢您的阅读 -------------
正在加载今日诗词....