05-python基础知识-函数基础

函数基础

函数简介

  • 定义:具有特定功能的一段代码。
  • 优点:
    • 可以减少代码的重复书写
    • 可以将功能的实现着和使用者分开,提高开发效率
  • 分类:
    • 库函数:print、input、type等
    • 自定义:用户自己封装的函数

函数使用

  • 基本格式:

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

    • 像变量名一样,只要符合标识符命名规范即可。
  • 函数调用:

    • 调用格式:函数名([参数])
    • 说明:函数不调用是不执行的,只有调用后才会执行

函数分类

  • 说明:按照有无参数及返回值来分

  • 示例:

    # 无参无返回值
    def print_ten_hello():
        for i in range(10):
            print('hello world!')
    
    # 无参:调用时无需传参数
    # 无返回值:执行完函数的返回值为None
    # None的一个作用是为了不报错,仅仅只是这样
    # ret=print_ten_hello()
    # print(print_ten_hello())
    
    #
    # 带参无返回值
    def print_n_hello(n):
        for i in range(n):
            print('hello world!')
    # 需要传递参数
    print_n_hello(3)
    
    # 带参有返回值
    def add(a, b):
        ret = a+b
        # 使用关键字return返回内容
        # 一旦执行return,函数立即结束
        # return后面会返回函数返回值
        return ret
    print(add(3,5))
    

函数参数

  • 形参:形式参数,就是写在函数定义处的参数。

  • 实参:实际参数,就是在函数调用时传递的参数。

  • 位置参数:函数定义时没有默认值的参数,也叫必传参数。调用时实参与定义时的形参要一一对应

  • 默认参数:函数定义时有默认值的参数,调用函数时可以不传递该参数。默认参数需要放在末尾

  • 关键字参数:函数调用时指定参数的名字,参数的位置就无需考虑。

  • 可变长度参数:

    def var_len_args(a, b, *args, name='二狗', **kwargs):
        print(a, b)
        # 是一个元组,用于保存多传的位置参数
        print(args)
        # 是一个字典,用于保存多传的关键字参数
    
  • *的使用

    def show(a, b=8):
        print(a, b)
        
    lt = [2, 3]
    # show(lt[0], lt[1])
    # 与上式等价,*是将列表展开,然后作为位置参数传递给函数
    show(*lt)
    
    d = {'a': '大花', 'b': 18}
    # show(a=d['a'], b=d['b'])
    # 与上式等价,**式将字典展开,然后作为关键字参数传递给函数
    show(**d)
    

函数进阶

  • 函数定义的位置是随意的吗?
    • 不是,函数调用一定要放在定义之后,也就是先定义再调用。
  • 函数的名字是否可以相同?
    • 不可以,虽然语法不报错,但是后者会覆盖前面的同名函数。
  • 函数内部能否定义另一个函数?
    • 能,函数内部定义的函数叫内部函数,它是很多高级功能实现的基础。

常用函数

  • 内置函数(无需导入)

    print:打印,输出
    input:输入
    type:获取类型
    len:统计元素个数
    range:产生连续的整数对象
    enumerate:枚举可迭代对象
    ord:字符转ASCII
    chr:ASCII转字符
    abs:求绝对值
    
    类型转换:int、float、str、bool、set、list、tuple、dict
    
    max:最大值
    min:最小值
    sum:求和
    pow:求幂
    round:四舍五入
    
    hex:十六进制
    oct:八进制
    bin:二进制
    
  • 模块函数(需要导入)

    import time
    #
    # while True:
    #     print('Hello world!')
    #     time.sleep(1)
    
    import math
    
    print(math.e)
    print(math.pi)
    print(math.ceil(3.1))
    print(math.floor(3.9))
    print(math.sqrt(4))
    # 度转换为弧度
    print(math.radians(360))
    # 弧度转换为度
    print(math.degrees(math.pi))
    
    import sys
    
    # 是一个列表,保存所有的命令行参数
    print(sys.argv)
    

猜你喜欢

转载自blog.csdn.net/weixin_44147782/article/details/85266507