Day10-函数进阶

Day10-函数进阶

01-返回值

  1. 什么是返回值

    返回值就是函数内部传递到函数外部的数据(默认情况下函数内部产生的数据,函数外部不能使用)

  2. 怎么确定函数的返回值

    python函数的返回值是跟在return后面,若没有则默认为None

    return的作用:遇到return会确定函数返回值并且直接结束函数

  3. 怎么在函数外部获取函数返回值

    函数调用表达式的值就是函数的返回值,所以在函数外部获取函数调用表达式的值就是函数返回值

    # 1)
    def func1(a, b):
        print(a + b)
    
    
    print(f'return:{func1(10, 20)}')
    
    
    # 2)
    def func2(a, b):
        return a + b
    
    
    # print(f'return: {func2(10, 20)}')
    # 3)有多个返回值的函数(实际返回一个元组)
    def fun3(a, b):
        return a + b, a * b
    
    
    print(f'return:{fun3(10, 20)}')  # return:(30, 200)
    
    
    # 练习:可以求多个数的和以及平均值
    def sum_mean(*args):
        if not args:
            return None, None
        return sum(args), sum(args) / len(args)
    
    
    sum1, mean1 = sum_mean(10, 20, 30, 40, 50, 60)
    print(f'和是{sum1}平均数是{mean1}')
    

02-全局变量和局部变量

  1. 什么是全局变量和局部变量

    按照变量的作用域不同将变量分为全局和局部两种

    • 全局变量

      定义在函数和类外面的变量

      作用域:从定义开始到文件结束的任意位置都可以使用

      a = 100
      for x in range(3):
          print(f'循环内部:{a}')
      
          
      def func1():
      	print(f'函数内部:{a}')    
         
      
      # b是全局
      for b in range(3):
          # c = 'hello'
          pass
      
      print(f'{b}')
      
      
    • 局部变量

      定义在函数内部的变量就是局部变量

      作用域:从定义开始到函数结束

      函数调用过程内存的变化

      每次调用一个函数的时候系统会自动在栈区间开辟一个临时的内存空间,用来保存在函数中产生的数据(定义的变量),当函数调用结束后这块内存会自动释放(销毁)

      • 函数的形参也是局部变量

      • global 和 nonlocal

        • global

          只能在函数体中使用;功能:在函数中定义全局变量

          global 变量名

          变量名 = 数据

        • nonlocal

          功能:在局部中局部中修改一个局部变量的值

          语法和global一样

        # 1.global
        m = 100
        
        
        def fun2():
            global m, n
            m = 200
            print(f'函数内部m:{m}')
        
            # global n
            n = 10  # n是全局变量
        
        
        fun2()
        print(f'函数外部m:{m}')
        print(f'函数外部n:{n}')
        
        
        # 2)nonlocal(了解)
        
        
        def fun3():
            t = 100
        
            def fun4():
                nonlocal t
                t = 200
                print(f'函数中的函数t:{t}')
        
            fun4()
            print(f'函数中的t:{t}')
        
        
        fun3()
        

03-匿名函数

  1. 匿名函数

    匿名函数的本质是函数;在定义的时候不需要函数名(一般情况下不会使用匿名函数,在调用高阶函数的时候用的比较多)

    语法:

    lambda 形参列表:返回值

    相当于:

    def (形参列表):
    return 返回值

    # 定义一个匿名函数求两个数的和
    sum1 = lambda a, b: a + b
    print(sum1(10, 20))
    
    # 练习:写一个匿名函数,获取两个数中较大的数
    max_num = lambda num1, num2: max(num1, num2)
    print(max_num(10, 20))
    
    
    func1 = lambda x: print(x)
    print(func1(100))
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值